| /* SPDX-License-Identifier: GPL-2.0 */ |
| #ifndef TRACEPOINT_DEFS_H |
| #define TRACEPOINT_DEFS_H 1 |
| |
| /* |
| * File can be included directly by headers who only want to access |
| * tracepoint->key to guard out of line trace calls, or the definition of |
| * trace_print_flags{_u64}. Otherwise linux/tracepoint.h should be used. |
| */ |
| |
| #include <linux/atomic.h> |
| #include <linux/static_key.h> |
| |
| struct trace_print_flags { |
| unsigned long mask; |
| const char *name; |
| }; |
| |
| struct trace_print_flags_u64 { |
| unsigned long long mask; |
| const char *name; |
| }; |
| |
| struct tracepoint_func { |
| void *func; |
| void *data; |
| int prio; |
| }; |
| |
| struct tracepoint { |
| const char *name; /* Tracepoint name */ |
| struct static_key key; |
| int (*regfunc)(void); |
| void (*unregfunc)(void); |
| struct tracepoint_func __rcu *funcs; |
| }; |
| |
| #ifdef CONFIG_HAVE_ARCH_PREL32_RELOCATIONS |
| typedef const int tracepoint_ptr_t; |
| #else |
| typedef struct tracepoint * const tracepoint_ptr_t; |
| #endif |
| |
| struct bpf_raw_event_map { |
| struct tracepoint *tp; |
| void *bpf_func; |
| u32 num_args; |
| u32 writable_size; |
| } __aligned(32); |
| |
| #endif |