xref: /linux/include/linux/trace_remote_event.h (revision e4bf304f000e6fcceaf60b1455a5124b783b3a66)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 
3 #ifndef _LINUX_TRACE_REMOTE_EVENTS_H
4 #define _LINUX_TRACE_REMOTE_EVENTS_H
5 
6 struct trace_remote;
7 struct trace_event_fields;
8 struct trace_seq;
9 
10 struct remote_event_hdr {
11 	unsigned short	id;
12 };
13 
14 #define REMOTE_EVENT_NAME_MAX 30
15 struct remote_event {
16 	char				name[REMOTE_EVENT_NAME_MAX];
17 	unsigned short			id;
18 	bool				enabled;
19 	struct trace_remote		*remote;
20 	struct trace_event_fields	*fields;
21 	char				*print_fmt;
22 	void				(*print)(void *evt, struct trace_seq *seq);
23 };
24 
25 #define RE_STRUCT(__args...) __args
26 #define re_field(__type, __field) __type __field;
27 
28 #define REMOTE_EVENT_FORMAT(__name, __struct)	\
29 	struct remote_event_format_##__name {	\
30 		struct remote_event_hdr hdr;	\
31 		__struct			\
32 	}
33 #endif
34