xref: /openbmc/linux/include/trace/define_custom_trace.h (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
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