Merge tag 'x86_sev_for_v5.14_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
[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         MAX_FILTER_STR_VAL /* 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         bool is_dynamic;
20         bool field_pos;
21 };
22
23 struct synth_event {
24         struct dyn_event                        devent;
25         int                                     ref;
26         char                                    *name;
27         struct synth_field                      **fields;
28         unsigned int                            n_fields;
29         struct synth_field                      **dynamic_fields;
30         unsigned int                            n_dynamic_fields;
31         unsigned int                            n_u64;
32         struct trace_event_class                class;
33         struct trace_event_call                 call;
34         struct tracepoint                       *tp;
35         struct module                           *mod;
36 };
37
38 extern struct synth_event *find_synth_event(const char *name);
39
40 #endif /* __TRACE_SYNTH_H */