2 * Copyright (C) 2009 Steven Rostedt <srostedt@redhat.com>
3 * Copyright (C) 2011 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation;
8 * version 2.1 of the License.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 * Trace files that want to automate creationg of all tracepoints defined
21 * in their file should include this file. The following are macros that the
22 * trace file may define:
24 * TRACEPOINT_SYSTEM defines the system the tracepoint is for:
25 * < [com_company_]project_[component_] >
27 * TRACEPOINT_INCLUDE_FILE if the file name is something other than
28 * TRACEPOINT_SYSTEM.h. This macro may be defined to tell
29 * define_trace.h what file to include. Note, leave off the ".h".
31 * TRACEPOINT_INCLUDE_PATH if the path is something other than within
32 * the system's include/tracepoint/ path, then this macro can define
33 * the path to use. This path is relative to tracepoint-event.h, or
34 * to the include search path. Trick: Use a
35 * #define TRACEPOINT_INCLUDE_PATH .
36 * combined with -Ipath_to_header as compiler argument to allow
37 * searching for a header within your project build tree.
44 #ifdef TRACEPOINT_CREATE_PROBES
46 /* Prevent recursion */
47 #undef TRACEPOINT_CREATE_PROBES
49 #ifndef __tp_stringify
50 #define __tp_stringify_1(x...) #x
51 #define __tp_stringify(x...) __tp_stringify_1(x)
54 #undef TRACEPOINT_EVENT
55 #define TRACEPOINT_EVENT(name, proto, args, fields) \
56 _DEFINE_TRACEPOINT(name)
58 #undef TRACEPOINT_EVENT_INSTANCE
59 #define TRACEPOINT_EVENT_INSTANCE(template, name, proto, args) \
60 _DEFINE_TRACEPOINT(name)
62 #undef TRACEPOINT_EVENT_NOARGS
63 #define TRACEPOINT_EVENT_NOARGS(name, fields) \
64 _DEFINE_TRACEPOINT(name)
66 #undef TRACEPOINT_EVENT_INSTANCE_NOARGS
67 #define TRACEPOINT_EVENT_INSTANCE_NOARGS(template, name) \
68 _DEFINE_TRACEPOINT(name)
70 #undef TRACEPOINT_INCLUDE
71 #undef __TRACEPOINT_INCLUDE
73 #ifndef TRACEPOINT_INCLUDE_FILE
74 # define TRACEPOINT_INCLUDE_FILE TRACEPOINT_SYSTEM
75 # define UNDEF_TRACEPOINT_INCLUDE_FILE
78 #ifndef TRACEPOINT_INCLUDE_PATH
79 # define __TRACEPOINT_INCLUDE(system) <tracepoint/system.h>
80 # define UNDEF_TRACEPOINT_INCLUDE_PATH
82 # define __TRACEPOINT_INCLUDE(system) \
83 __tp_stringify(TRACEPOINT_INCLUDE_PATH/system.h)
86 # define TRACEPOINT_INCLUDE(system) __TRACEPOINT_INCLUDE(system)
88 /* Let the trace headers be reread */
89 #define TRACEPOINT_HEADER_MULTI_READ
91 #include TRACEPOINT_INCLUDE(TRACEPOINT_INCLUDE_FILE)
93 #include <lttng/ust-tracepoint-event.h>
95 #undef TRACEPOINT_EVENT
96 #undef TRACEPOINT_EVENT_CLASS
97 #undef TRACEPOINT_EVENT_INSTANCE
98 #undef TRACEPOINT_EVENT_NOARGS
99 #undef TRACEPOINT_EVENT_CLASS_NOARGS
100 #undef TRACEPOINT_EVENT_INSTANCE_NOARGS
101 #undef TRACEPOINT_HEADER_MULTI_READ
103 /* Only undef what we defined in this file */
104 #ifdef UNDEF_TRACEPOINT_INCLUDE_FILE
105 # undef TRACEPOINT_INCLUDE_FILE
106 # undef UNDEF_TRACEPOINT_INCLUDE_FILE
109 #ifdef UNDEF_TRACEPOINT_INCLUDE_PATH
110 # undef TRACEPOINT_INCLUDE_PATH
111 # undef UNDEF_TRACEPOINT_INCLUDE_PATH
114 /* We may be processing more files */
115 #define TRACEPOINT_CREATE_PROBES
117 #endif /* TRACEPOINT_CREATE_PROBES */
This page took 0.045278 seconds and 4 git commands to generate.