tracing: new format for specialized trace points
[linux-2.6.git] / kernel / trace / trace_events_stage_1.h
1 /*
2  * Stage 1 of the trace events.
3  *
4  * Override the macros in <trace/trace_event_types.h> to include the following:
5  *
6  * struct ftrace_raw_<call> {
7  *      struct trace_entry              ent;
8  *      <type>                          <item>;
9  *      [...]
10  * };
11  *
12  * The <type> <item> is created by the TRACE_FIELD(type, item, assign)
13  * macro. We simply do "type item;", and that will create the fields
14  * in the structure.
15  */
16
17 #undef TRACE_FORMAT
18 #define TRACE_FORMAT(call, proto, args, fmt)
19
20 #undef TRACE_EVENT_FORMAT
21 #define TRACE_EVENT_FORMAT(name, proto, args, fmt, tstruct, tpfmt)
22
23 #undef __array
24 #define __array(type, item, len)        type    item[len];
25
26 #undef __field
27 #define __field(type, item)             type    item;
28
29 #undef TP_STRUCT__entry
30 #define TP_STRUCT__entry(args...) args
31
32 #undef TRACE_EVENT
33 #define TRACE_EVENT(name, proto, args, tstruct, print, assign)  \
34         struct ftrace_raw_##name {                              \
35                 struct trace_entry      ent;                    \
36                 tstruct                                         \
37         };                                                      \
38         static struct ftrace_event_call event_##name
39
40 #include <trace/trace_event_types.h>