| // SPDX-License-Identifier: GPL-2.0 | |
| #ifndef __TRACE_SYNTH_H | |
| #define __TRACE_SYNTH_H | |
| #include "trace_dynevent.h" | |
| #define SYNTH_SYSTEM "synthetic" | |
| #define SYNTH_FIELDS_MAX 64 | |
| #define STR_VAR_LEN_MAX MAX_FILTER_STR_VAL /* must be multiple of sizeof(u64) */ | |
| struct synth_field { | |
| char *type; | |
| char *name; | |
| size_t size; | |
| unsigned int offset; | |
| unsigned int field_pos; | |
| bool is_signed; | |
| bool is_string; | |
| bool is_dynamic; | |
| bool is_stack; | |
| }; | |
| struct synth_event { | |
| struct dyn_event devent; | |
| int ref; | |
| char *name; | |
| struct synth_field **fields; | |
| unsigned int n_fields; | |
| struct synth_field **dynamic_fields; | |
| unsigned int n_dynamic_fields; | |
| unsigned int n_u64; | |
| struct trace_event_class class; | |
| struct trace_event_call call; | |
| struct tracepoint *tp; | |
| struct module *mod; | |
| }; | |
| extern struct synth_event *find_synth_event(const char *name); | |
| #endif /* __TRACE_SYNTH_H */ |