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