~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/trace/define_trace.h

Version: ~ [ linux-5.12 ] ~ [ linux-5.11.16 ] ~ [ linux-5.10.32 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.114 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.188 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.231 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.267 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.267 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.18.140 ] ~ [ linux-3.16.85 ] ~ [ linux-3.14.79 ] ~ [ linux-3.12.74 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 */
  2 /*
  3  * Trace files that want to automate creation of all tracepoints defined
  4  * in their file should include this file. The following are macros that the
  5  * trace file may define:
  6  *
  7  * TRACE_SYSTEM defines the system the tracepoint is for
  8  *
  9  * TRACE_INCLUDE_FILE if the file name is something other than TRACE_SYSTEM.h
 10  *     This macro may be defined to tell define_trace.h what file to include.
 11  *     Note, leave off the ".h".
 12  *
 13  * TRACE_INCLUDE_PATH if the path is something other than core kernel include/trace
 14  *     then this macro can define the path to use. Note, the path is relative to
 15  *     define_trace.h, not the file including it. Full path names for out of tree
 16  *     modules must be used.
 17  */
 18 
 19 #ifdef CREATE_TRACE_POINTS
 20 
 21 /* Prevent recursion */
 22 #undef CREATE_TRACE_POINTS
 23 
 24 #include <linux/stringify.h>
 25 
 26 #undef TRACE_EVENT
 27 #define TRACE_EVENT(name, proto, args, tstruct, assign, print)  \
 28         DEFINE_TRACE(name)
 29 
 30 #undef TRACE_EVENT_CONDITION
 31 #define TRACE_EVENT_CONDITION(name, proto, args, cond, tstruct, assign, print) \
 32         TRACE_EVENT(name,                                               \
 33                 PARAMS(proto),                                          \
 34                 PARAMS(args),                                           \
 35                 PARAMS(tstruct),                                        \
 36                 PARAMS(assign),                                         \
 37                 PARAMS(print))
 38 
 39 #undef TRACE_EVENT_FN
 40 #define TRACE_EVENT_FN(name, proto, args, tstruct,              \
 41                 assign, print, reg, unreg)                      \
 42         DEFINE_TRACE_FN(name, reg, unreg)
 43 
 44 #undef TRACE_EVENT_FN_COND
 45 #define TRACE_EVENT_FN_COND(name, proto, args, cond, tstruct,           \
 46                 assign, print, reg, unreg)                      \
 47         DEFINE_TRACE_FN(name, reg, unreg)
 48 
 49 #undef TRACE_EVENT_NOP
 50 #define TRACE_EVENT_NOP(name, proto, args, struct, assign, print)
 51 
 52 #undef DEFINE_EVENT_NOP
 53 #define DEFINE_EVENT_NOP(template, name, proto, args)
 54 
 55 #undef DEFINE_EVENT
 56 #define DEFINE_EVENT(template, name, proto, args) \
 57         DEFINE_TRACE(name)
 58 
 59 #undef DEFINE_EVENT_FN
 60 #define DEFINE_EVENT_FN(template, name, proto, args, reg, unreg) \
 61         DEFINE_TRACE_FN(name, reg, unreg)
 62 
 63 #undef DEFINE_EVENT_PRINT
 64 #define DEFINE_EVENT_PRINT(template, name, proto, args, print)  \
 65         DEFINE_TRACE(name)
 66 
 67 #undef DEFINE_EVENT_CONDITION
 68 #define DEFINE_EVENT_CONDITION(template, name, proto, args, cond) \
 69         DEFINE_EVENT(template, name, PARAMS(proto), PARAMS(args))
 70 
 71 #undef DECLARE_TRACE
 72 #define DECLARE_TRACE(name, proto, args)        \
 73         DEFINE_TRACE(name)
 74 
 75 #undef TRACE_INCLUDE
 76 #undef __TRACE_INCLUDE
 77 
 78 #ifndef TRACE_INCLUDE_FILE
 79 # define TRACE_INCLUDE_FILE TRACE_SYSTEM
 80 # define UNDEF_TRACE_INCLUDE_FILE
 81 #endif
 82 
 83 #ifndef TRACE_INCLUDE_PATH
 84 # define __TRACE_INCLUDE(system) <trace/events/system.h>
 85 # define UNDEF_TRACE_INCLUDE_PATH
 86 #else
 87 # define __TRACE_INCLUDE(system) __stringify(TRACE_INCLUDE_PATH/system.h)
 88 #endif
 89 
 90 # define TRACE_INCLUDE(system) __TRACE_INCLUDE(system)
 91 
 92 /* Let the trace headers be reread */
 93 #define TRACE_HEADER_MULTI_READ
 94 
 95 #include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
 96 
 97 /* Make all open coded DECLARE_TRACE nops */
 98 #undef DECLARE_TRACE
 99 #define DECLARE_TRACE(name, proto, args)
100 
101 #ifdef TRACEPOINTS_ENABLED
102 #include <trace/trace_events.h>
103 #include <trace/perf.h>
104 #include <trace/bpf_probe.h>
105 #endif
106 
107 #undef TRACE_EVENT
108 #undef TRACE_EVENT_FN
109 #undef TRACE_EVENT_FN_COND
110 #undef TRACE_EVENT_CONDITION
111 #undef TRACE_EVENT_NOP
112 #undef DEFINE_EVENT_NOP
113 #undef DECLARE_EVENT_CLASS
114 #undef DEFINE_EVENT
115 #undef DEFINE_EVENT_FN
116 #undef DEFINE_EVENT_PRINT
117 #undef DEFINE_EVENT_CONDITION
118 #undef TRACE_HEADER_MULTI_READ
119 #undef DECLARE_TRACE
120 
121 /* Only undef what we defined in this file */
122 #ifdef UNDEF_TRACE_INCLUDE_FILE
123 # undef TRACE_INCLUDE_FILE
124 # undef UNDEF_TRACE_INCLUDE_FILE
125 #endif
126 
127 #ifdef UNDEF_TRACE_INCLUDE_PATH
128 # undef TRACE_INCLUDE_PATH
129 # undef UNDEF_TRACE_INCLUDE_PATH
130 #endif
131 
132 /* We may be processing more files */
133 #define CREATE_TRACE_POINTS
134 
135 #endif /* CREATE_TRACE_POINTS */
136 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp