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 12struct 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 21struct 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 34extern struct synth_event *find_synth_event(const char *name); 35 36#endif /* __TRACE_SYNTH_H */ 37