1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #undef TRACE_SYSTEM |
3 | #define TRACE_SYSTEM initcall |
4 | |
5 | #if !defined(_TRACE_INITCALL_H) || defined(TRACE_HEADER_MULTI_READ) |
6 | #define _TRACE_INITCALL_H |
7 | |
8 | #include <linux/tracepoint.h> |
9 | |
10 | TRACE_EVENT(initcall_level, |
11 | |
12 | TP_PROTO(const char *level), |
13 | |
14 | TP_ARGS(level), |
15 | |
16 | TP_STRUCT__entry( |
17 | __string(level, level) |
18 | ), |
19 | |
20 | TP_fast_assign( |
21 | __assign_str(level, level); |
22 | ), |
23 | |
24 | TP_printk("level=%s" , __get_str(level)) |
25 | ); |
26 | |
27 | TRACE_EVENT(initcall_start, |
28 | |
29 | TP_PROTO(initcall_t func), |
30 | |
31 | TP_ARGS(func), |
32 | |
33 | TP_STRUCT__entry( |
34 | /* |
35 | * Use field_struct to avoid is_signed_type() |
36 | * comparison of a function pointer |
37 | */ |
38 | __field_struct(initcall_t, func) |
39 | ), |
40 | |
41 | TP_fast_assign( |
42 | __entry->func = func; |
43 | ), |
44 | |
45 | TP_printk("func=%pS" , __entry->func) |
46 | ); |
47 | |
48 | TRACE_EVENT(initcall_finish, |
49 | |
50 | TP_PROTO(initcall_t func, int ret), |
51 | |
52 | TP_ARGS(func, ret), |
53 | |
54 | TP_STRUCT__entry( |
55 | /* |
56 | * Use field_struct to avoid is_signed_type() |
57 | * comparison of a function pointer |
58 | */ |
59 | __field_struct(initcall_t, func) |
60 | __field(int, ret) |
61 | ), |
62 | |
63 | TP_fast_assign( |
64 | __entry->func = func; |
65 | __entry->ret = ret; |
66 | ), |
67 | |
68 | TP_printk("func=%pS ret=%d" , __entry->func, __entry->ret) |
69 | ); |
70 | |
71 | #endif /* if !defined(_TRACE_GPIO_H) || defined(TRACE_HEADER_MULTI_READ) */ |
72 | |
73 | /* This part must be outside protection */ |
74 | #include <trace/define_trace.h> |
75 | |