// 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 */ |