Merge branch 'next' into for-linus
[linux-2.6-microblaze.git] / kernel / trace / trace_synth.h
1 // SPDX-License-Identifier: GPL-2.0
2 #ifndef __TRACE_SYNTH_H
3 #define __TRACE_SYNTH_H
4
5 #include "trace_dynevent.h"
6
7 #define SYNTH_SYSTEM            "synthetic"
8 #define SYNTH_FIELDS_MAX        32
9
10 #define STR_VAR_LEN_MAX         32 /* must be multiple of sizeof(u64) */
11
12 struct synth_field {
13         char *type;
14         char *name;
15         size_t size;
16         unsigned int offset;
17         bool is_signed;
18         bool is_string;
19 };
20
21 struct synth_event {
22         struct dyn_event                        devent;
23         int                                     ref;
24         char                                    *name;
25         struct synth_field                      **fields;
26         unsigned int                            n_fields;
27         unsigned int                            n_u64;
28         struct trace_event_class                class;
29         struct trace_event_call                 call;
30         struct tracepoint                       *tp;
31         struct module                           *mod;
32 };
33
34 extern struct synth_event *find_synth_event(const char *name);
35
36 #endif /* __TRACE_SYNTH_H */