mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-05-05 09:57:21 +02:00
5f3efd1dce
Declaring remote events can be cumbersome let's add a set of macros to
simplify developers life. The declaration of a remote event is very
similar to kernel's events:
REMOTE_EVENT(name, id,
RE_STRUCT(
re_field(u64 foo)
),
RE_PRINTK("foo=%llu", __entry->foo)
)
Link: https://patch.msgid.link/20260309162516.2623589-12-vdonnefort@google.com
Reviewed-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Vincent Donnefort <vdonnefort@google.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
34 lines
744 B
C
34 lines
744 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
|
|
#ifndef _LINUX_TRACE_REMOTE_EVENTS_H
|
|
#define _LINUX_TRACE_REMOTE_EVENTS_H
|
|
|
|
struct trace_remote;
|
|
struct trace_event_fields;
|
|
struct trace_seq;
|
|
|
|
struct remote_event_hdr {
|
|
unsigned short id;
|
|
};
|
|
|
|
#define REMOTE_EVENT_NAME_MAX 30
|
|
struct remote_event {
|
|
char name[REMOTE_EVENT_NAME_MAX];
|
|
unsigned short id;
|
|
bool enabled;
|
|
struct trace_remote *remote;
|
|
struct trace_event_fields *fields;
|
|
char *print_fmt;
|
|
void (*print)(void *evt, struct trace_seq *seq);
|
|
};
|
|
|
|
#define RE_STRUCT(__args...) __args
|
|
#define re_field(__type, __field) __type __field;
|
|
|
|
#define REMOTE_EVENT_FORMAT(__name, __struct) \
|
|
struct remote_event_format_##__name { \
|
|
struct remote_event_hdr hdr; \
|
|
__struct \
|
|
}
|
|
#endif
|