| /* SPDX-License-Identifier: GPL-2.0 */ |
| #undef TRACE_SYSTEM |
| #define TRACE_SYSTEM initcall |
| |
| #if !defined(_TRACE_INITCALL_H) || defined(TRACE_HEADER_MULTI_READ) |
| #define _TRACE_INITCALL_H |
| |
| #include <linux/tracepoint.h> |
| |
| TRACE_EVENT(initcall_level, |
| |
| TP_PROTO(const char *level), |
| |
| TP_ARGS(level), |
| |
| TP_STRUCT__entry( |
| __string(level, level) |
| ), |
| |
| TP_fast_assign( |
| __assign_str(level, level); |
| ), |
| |
| TP_printk("level=%s", __get_str(level)) |
| ); |
| |
| TRACE_EVENT(initcall_start, |
| |
| TP_PROTO(initcall_t func), |
| |
| TP_ARGS(func), |
| |
| TP_STRUCT__entry( |
| /* |
| * Use field_struct to avoid is_signed_type() |
| * comparison of a function pointer |
| */ |
| __field_struct(initcall_t, func) |
| ), |
| |
| TP_fast_assign( |
| __entry->func = func; |
| ), |
| |
| TP_printk("func=%pS", __entry->func) |
| ); |
| |
| TRACE_EVENT(initcall_finish, |
| |
| TP_PROTO(initcall_t func, int ret), |
| |
| TP_ARGS(func, ret), |
| |
| TP_STRUCT__entry( |
| /* |
| * Use field_struct to avoid is_signed_type() |
| * comparison of a function pointer |
| */ |
| __field_struct(initcall_t, func) |
| __field(int, ret) |
| ), |
| |
| TP_fast_assign( |
| __entry->func = func; |
| __entry->ret = ret; |
| ), |
| |
| TP_printk("func=%pS ret=%d", __entry->func, __entry->ret) |
| ); |
| |
| #endif /* if !defined(_TRACE_GPIO_H) || defined(TRACE_HEADER_MULTI_READ) */ |
| |
| /* This part must be outside protection */ |
| #include <trace/define_trace.h> |