linux/include/linux/tracepoint-defs.h
<<
>>
Prefs
   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
  14struct trace_print_flags {
  15        unsigned long           mask;
  16        const char              *name;
  17};
  18
  19struct trace_print_flags_u64 {
  20        unsigned long long      mask;
  21        const char              *name;
  22};
  23
  24struct tracepoint_func {
  25        void *func;
  26        void *data;
  27        int prio;
  28};
  29
  30struct 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
  39typedef const int tracepoint_ptr_t;
  40#else
  41typedef struct tracepoint * const tracepoint_ptr_t;
  42#endif
  43
  44struct 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
  52