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 38struct bpf_raw_event_map { 39 struct tracepoint *tp; 40 void *bpf_func; 41 u32 num_args; 42 u32 writable_size; 43} __aligned(32); 44 45#endif 46