root/include/linux/tracepoint-defs.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef TRACEPOINT_DEFS_H
   3 #define TRACEPOINT_DEFS_H 1
   4 
   5 /*
   6  * File can be included directly by headers who only want to access
   7  * tracepoint->key to guard out of line trace calls, or the definition of
   8  * trace_print_flags{_u64}. Otherwise linux/tracepoint.h should be used.
   9  */
  10 
  11 #include <linux/atomic.h>
  12 #include <linux/static_key.h>
  13 
  14 struct trace_print_flags {
  15         unsigned long           mask;
  16         const char              *name;
  17 };
  18 
  19 struct trace_print_flags_u64 {
  20         unsigned long long      mask;
  21         const char              *name;
  22 };
  23 
  24 struct tracepoint_func {
  25         void *func;
  26         void *data;
  27         int prio;
  28 };
  29 
  30 struct tracepoint {
  31         const char *name;               /* Tracepoint name */
  32         struct static_key key;
  33         int (*regfunc)(void);
  34         void (*unregfunc)(void);
  35         struct tracepoint_func __rcu *funcs;
  36 };
  37 
  38 #ifdef CONFIG_HAVE_ARCH_PREL32_RELOCATIONS
  39 typedef const int tracepoint_ptr_t;
  40 #else
  41 typedef struct tracepoint * const tracepoint_ptr_t;
  42 #endif
  43 
  44 struct bpf_raw_event_map {
  45         struct tracepoint       *tp;
  46         void                    *bpf_func;
  47         u32                     num_args;
  48         u32                     writable_size;
  49 } __aligned(32);
  50 
  51 #endif

/* [<][>][^][v][top][bottom][index][help] */