linux/kernel/trace/trace_synth.h
<<
>>
Prefs
   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        64
   9
  10#define STR_VAR_LEN_MAX         MAX_FILTER_STR_VAL /* 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        unsigned int field_pos;
  18        bool is_signed;
  19        bool is_string;
  20        bool is_dynamic;
  21};
  22
  23struct 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
  38extern struct synth_event *find_synth_event(const char *name);
  39
  40#endif /* __TRACE_SYNTH_H */
  41