| |
| #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 |
| |
| |
| #include <trace/define_trace.h> |
| |