Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
bd2a634d AK |
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 | |
20f6e03a VB |
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. | |
bd2a634d AK |
9 | */ |
10 | ||
11 | #include <linux/atomic.h> | |
12 | #include <linux/static_key.h> | |
13 | ||
20f6e03a VB |
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 | ||
bd2a634d AK |
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; | |
8cf868af | 33 | int (*regfunc)(void); |
bd2a634d AK |
34 | void (*unregfunc)(void); |
35 | struct tracepoint_func __rcu *funcs; | |
36 | }; | |
37 | ||
9c0be3f6 MD |
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 | ||
c4f6699d AS |
44 | struct bpf_raw_event_map { |
45 | struct tracepoint *tp; | |
46 | void *bpf_func; | |
47 | u32 num_args; | |
9df1c28b | 48 | u32 writable_size; |
c4f6699d AS |
49 | } __aligned(32); |
50 | ||
bd2a634d | 51 | #endif |