1*3a73333fSSteven Rostedt (Google) /* SPDX-License-Identifier: GPL-2.0 */ 2*3a73333fSSteven Rostedt (Google) /* 3*3a73333fSSteven Rostedt (Google) * Trace files that want to automate creation of all tracepoints defined 4*3a73333fSSteven Rostedt (Google) * in their file should include this file. The following are macros that the 5*3a73333fSSteven Rostedt (Google) * trace file may define: 6*3a73333fSSteven Rostedt (Google) * 7*3a73333fSSteven Rostedt (Google) * TRACE_SYSTEM defines the system the tracepoint is for 8*3a73333fSSteven Rostedt (Google) * 9*3a73333fSSteven Rostedt (Google) * TRACE_INCLUDE_FILE if the file name is something other than TRACE_SYSTEM.h 10*3a73333fSSteven Rostedt (Google) * This macro may be defined to tell define_trace.h what file to include. 11*3a73333fSSteven Rostedt (Google) * Note, leave off the ".h". 12*3a73333fSSteven Rostedt (Google) * 13*3a73333fSSteven Rostedt (Google) * TRACE_INCLUDE_PATH if the path is something other than core kernel include/trace 14*3a73333fSSteven Rostedt (Google) * then this macro can define the path to use. Note, the path is relative to 15*3a73333fSSteven Rostedt (Google) * define_trace.h, not the file including it. Full path names for out of tree 16*3a73333fSSteven Rostedt (Google) * modules must be used. 17*3a73333fSSteven Rostedt (Google) */ 18*3a73333fSSteven Rostedt (Google) 19*3a73333fSSteven Rostedt (Google) #ifdef CREATE_CUSTOM_TRACE_EVENTS 20*3a73333fSSteven Rostedt (Google) 21*3a73333fSSteven Rostedt (Google) /* Prevent recursion */ 22*3a73333fSSteven Rostedt (Google) #undef CREATE_CUSTOM_TRACE_EVENTS 23*3a73333fSSteven Rostedt (Google) 24*3a73333fSSteven Rostedt (Google) #include <linux/stringify.h> 25*3a73333fSSteven Rostedt (Google) 26*3a73333fSSteven Rostedt (Google) #undef TRACE_CUSTOM_EVENT 27*3a73333fSSteven Rostedt (Google) #define TRACE_CUSTOM_EVENT(name, proto, args, tstruct, assign, print) 28*3a73333fSSteven Rostedt (Google) 29*3a73333fSSteven Rostedt (Google) #undef DEFINE_CUSTOM_EVENT 30*3a73333fSSteven Rostedt (Google) #define DEFINE_CUSTOM_EVENT(template, name, proto, args) 31*3a73333fSSteven Rostedt (Google) 32*3a73333fSSteven Rostedt (Google) #undef TRACE_INCLUDE 33*3a73333fSSteven Rostedt (Google) #undef __TRACE_INCLUDE 34*3a73333fSSteven Rostedt (Google) 35*3a73333fSSteven Rostedt (Google) #ifndef TRACE_INCLUDE_FILE 36*3a73333fSSteven Rostedt (Google) # define TRACE_INCLUDE_FILE TRACE_SYSTEM 37*3a73333fSSteven Rostedt (Google) # define UNDEF_TRACE_INCLUDE_FILE 38*3a73333fSSteven Rostedt (Google) #endif 39*3a73333fSSteven Rostedt (Google) 40*3a73333fSSteven Rostedt (Google) #ifndef TRACE_INCLUDE_PATH 41*3a73333fSSteven Rostedt (Google) # define __TRACE_INCLUDE(system) <trace/events/system.h> 42*3a73333fSSteven Rostedt (Google) # define UNDEF_TRACE_INCLUDE_PATH 43*3a73333fSSteven Rostedt (Google) #else 44*3a73333fSSteven Rostedt (Google) # define __TRACE_INCLUDE(system) __stringify(TRACE_INCLUDE_PATH/system.h) 45*3a73333fSSteven Rostedt (Google) #endif 46*3a73333fSSteven Rostedt (Google) 47*3a73333fSSteven Rostedt (Google) # define TRACE_INCLUDE(system) __TRACE_INCLUDE(system) 48*3a73333fSSteven Rostedt (Google) 49*3a73333fSSteven Rostedt (Google) /* Let the trace headers be reread */ 50*3a73333fSSteven Rostedt (Google) #define TRACE_CUSTOM_MULTI_READ 51*3a73333fSSteven Rostedt (Google) 52*3a73333fSSteven Rostedt (Google) #include TRACE_INCLUDE(TRACE_INCLUDE_FILE) 53*3a73333fSSteven Rostedt (Google) 54*3a73333fSSteven Rostedt (Google) #ifdef TRACEPOINTS_ENABLED 55*3a73333fSSteven Rostedt (Google) #include <trace/trace_custom_events.h> 56*3a73333fSSteven Rostedt (Google) #endif 57*3a73333fSSteven Rostedt (Google) 58*3a73333fSSteven Rostedt (Google) #undef TRACE_CUSTOM_EVENT 59*3a73333fSSteven Rostedt (Google) #undef DECLARE_CUSTOM_EVENT_CLASS 60*3a73333fSSteven Rostedt (Google) #undef DEFINE_CUSTOM_EVENT 61*3a73333fSSteven Rostedt (Google) #undef TRACE_CUSTOM_MULTI_READ 62*3a73333fSSteven Rostedt (Google) 63*3a73333fSSteven Rostedt (Google) /* Only undef what we defined in this file */ 64*3a73333fSSteven Rostedt (Google) #ifdef UNDEF_TRACE_INCLUDE_FILE 65*3a73333fSSteven Rostedt (Google) # undef TRACE_INCLUDE_FILE 66*3a73333fSSteven Rostedt (Google) # undef UNDEF_TRACE_INCLUDE_FILE 67*3a73333fSSteven Rostedt (Google) #endif 68*3a73333fSSteven Rostedt (Google) 69*3a73333fSSteven Rostedt (Google) #ifdef UNDEF_TRACE_INCLUDE_PATH 70*3a73333fSSteven Rostedt (Google) # undef TRACE_INCLUDE_PATH 71*3a73333fSSteven Rostedt (Google) # undef UNDEF_TRACE_INCLUDE_PATH 72*3a73333fSSteven Rostedt (Google) #endif 73*3a73333fSSteven Rostedt (Google) 74*3a73333fSSteven Rostedt (Google) /* We may be processing more files */ 75*3a73333fSSteven Rostedt (Google) #define CREATE_CUSTOM_TRACE_POINTS 76*3a73333fSSteven Rostedt (Google) 77*3a73333fSSteven Rostedt (Google) #endif /* CREATE_CUSTOM_TRACE_POINTS */ 78