Files
Vincent Donnefort 5f3efd1dce tracing: Add helpers to create trace remote events
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>
2026-03-09 12:33:54 -04:00

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