1726721a5STom Zanussi // SPDX-License-Identifier: GPL-2.0 2726721a5STom Zanussi #ifndef __TRACE_SYNTH_H 3726721a5STom Zanussi #define __TRACE_SYNTH_H 4726721a5STom Zanussi 5726721a5STom Zanussi #include "trace_dynevent.h" 6726721a5STom Zanussi 7726721a5STom Zanussi #define SYNTH_SYSTEM "synthetic" 80be083ceSArtem Bityutskiy #define SYNTH_FIELDS_MAX 64 9726721a5STom Zanussi 104a4a56b4STom Zanussi #define STR_VAR_LEN_MAX MAX_FILTER_STR_VAL /* must be multiple of sizeof(u64) */ 11726721a5STom Zanussi 12726721a5STom Zanussi struct synth_field { 13726721a5STom Zanussi char *type; 14726721a5STom Zanussi char *name; 15726721a5STom Zanussi size_t size; 16726721a5STom Zanussi unsigned int offset; 173b13911aSSteven Rostedt (VMware) unsigned int field_pos; 18726721a5STom Zanussi bool is_signed; 19726721a5STom Zanussi bool is_string; 20bd82631dSTom Zanussi bool is_dynamic; 21*00cf3d67SSteven Rostedt (Google) bool is_stack; 22726721a5STom Zanussi }; 23726721a5STom Zanussi 24726721a5STom Zanussi struct synth_event { 25726721a5STom Zanussi struct dyn_event devent; 26726721a5STom Zanussi int ref; 27726721a5STom Zanussi char *name; 28726721a5STom Zanussi struct synth_field **fields; 29726721a5STom Zanussi unsigned int n_fields; 30bd82631dSTom Zanussi struct synth_field **dynamic_fields; 31bd82631dSTom Zanussi unsigned int n_dynamic_fields; 32726721a5STom Zanussi unsigned int n_u64; 33726721a5STom Zanussi struct trace_event_class class; 34726721a5STom Zanussi struct trace_event_call call; 35726721a5STom Zanussi struct tracepoint *tp; 36726721a5STom Zanussi struct module *mod; 37726721a5STom Zanussi }; 38726721a5STom Zanussi 39726721a5STom Zanussi extern struct synth_event *find_synth_event(const char *name); 40726721a5STom Zanussi 41726721a5STom Zanussi #endif /* __TRACE_SYNTH_H */ 42