14ee7c60dSSteven Rostedt (VMware) /* SPDX-License-Identifier: GPL-2.0 */ 24ee7c60dSSteven Rostedt (VMware) #undef TRACE_SYSTEM 34ee7c60dSSteven Rostedt (VMware) #define TRACE_SYSTEM initcall 44ee7c60dSSteven Rostedt (VMware) 54ee7c60dSSteven Rostedt (VMware) #if !defined(_TRACE_INITCALL_H) || defined(TRACE_HEADER_MULTI_READ) 64ee7c60dSSteven Rostedt (VMware) #define _TRACE_INITCALL_H 74ee7c60dSSteven Rostedt (VMware) 84ee7c60dSSteven Rostedt (VMware) #include <linux/tracepoint.h> 94ee7c60dSSteven Rostedt (VMware) 104ee7c60dSSteven Rostedt (VMware) TRACE_EVENT(initcall_level, 114ee7c60dSSteven Rostedt (VMware) 124ee7c60dSSteven Rostedt (VMware) TP_PROTO(const char *level), 134ee7c60dSSteven Rostedt (VMware) 144ee7c60dSSteven Rostedt (VMware) TP_ARGS(level), 154ee7c60dSSteven Rostedt (VMware) 164ee7c60dSSteven Rostedt (VMware) TP_STRUCT__entry( 174ee7c60dSSteven Rostedt (VMware) __string(level, level) 184ee7c60dSSteven Rostedt (VMware) ), 194ee7c60dSSteven Rostedt (VMware) 204ee7c60dSSteven Rostedt (VMware) TP_fast_assign( 214ee7c60dSSteven Rostedt (VMware) __assign_str(level, level); 224ee7c60dSSteven Rostedt (VMware) ), 234ee7c60dSSteven Rostedt (VMware) 244ee7c60dSSteven Rostedt (VMware) TP_printk("level=%s", __get_str(level)) 254ee7c60dSSteven Rostedt (VMware) ); 264ee7c60dSSteven Rostedt (VMware) 274ee7c60dSSteven Rostedt (VMware) TRACE_EVENT(initcall_start, 284ee7c60dSSteven Rostedt (VMware) 294ee7c60dSSteven Rostedt (VMware) TP_PROTO(initcall_t func), 304ee7c60dSSteven Rostedt (VMware) 314ee7c60dSSteven Rostedt (VMware) TP_ARGS(func), 324ee7c60dSSteven Rostedt (VMware) 334ee7c60dSSteven Rostedt (VMware) TP_STRUCT__entry( 34*0566e40cSRishabh Bhatnagar /* 35*0566e40cSRishabh Bhatnagar * Use field_struct to avoid is_signed_type() 36*0566e40cSRishabh Bhatnagar * comparison of a function pointer 37*0566e40cSRishabh Bhatnagar */ 38*0566e40cSRishabh Bhatnagar __field_struct(initcall_t, func) 394ee7c60dSSteven Rostedt (VMware) ), 404ee7c60dSSteven Rostedt (VMware) 414ee7c60dSSteven Rostedt (VMware) TP_fast_assign( 424ee7c60dSSteven Rostedt (VMware) __entry->func = func; 434ee7c60dSSteven Rostedt (VMware) ), 444ee7c60dSSteven Rostedt (VMware) 454ee7c60dSSteven Rostedt (VMware) TP_printk("func=%pS", __entry->func) 464ee7c60dSSteven Rostedt (VMware) ); 474ee7c60dSSteven Rostedt (VMware) 484ee7c60dSSteven Rostedt (VMware) TRACE_EVENT(initcall_finish, 494ee7c60dSSteven Rostedt (VMware) 504ee7c60dSSteven Rostedt (VMware) TP_PROTO(initcall_t func, int ret), 514ee7c60dSSteven Rostedt (VMware) 524ee7c60dSSteven Rostedt (VMware) TP_ARGS(func, ret), 534ee7c60dSSteven Rostedt (VMware) 544ee7c60dSSteven Rostedt (VMware) TP_STRUCT__entry( 55*0566e40cSRishabh Bhatnagar /* 56*0566e40cSRishabh Bhatnagar * Use field_struct to avoid is_signed_type() 57*0566e40cSRishabh Bhatnagar * comparison of a function pointer 58*0566e40cSRishabh Bhatnagar */ 59*0566e40cSRishabh Bhatnagar __field_struct(initcall_t, func) 604ee7c60dSSteven Rostedt (VMware) __field(int, ret) 614ee7c60dSSteven Rostedt (VMware) ), 624ee7c60dSSteven Rostedt (VMware) 634ee7c60dSSteven Rostedt (VMware) TP_fast_assign( 644ee7c60dSSteven Rostedt (VMware) __entry->func = func; 654ee7c60dSSteven Rostedt (VMware) __entry->ret = ret; 664ee7c60dSSteven Rostedt (VMware) ), 674ee7c60dSSteven Rostedt (VMware) 684ee7c60dSSteven Rostedt (VMware) TP_printk("func=%pS ret=%d", __entry->func, __entry->ret) 694ee7c60dSSteven Rostedt (VMware) ); 704ee7c60dSSteven Rostedt (VMware) 714ee7c60dSSteven Rostedt (VMware) #endif /* if !defined(_TRACE_GPIO_H) || defined(TRACE_HEADER_MULTI_READ) */ 724ee7c60dSSteven Rostedt (VMware) 734ee7c60dSSteven Rostedt (VMware) /* This part must be outside protection */ 744ee7c60dSSteven Rostedt (VMware) #include <trace/define_trace.h> 75