475f46a047ae58d4676b6c6671140f666ec1c9a0
[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_events.h> to include the following:
5  *
6  * struct ftrace_raw_<call> {
7  *      struct trace_entry              ent;
8  *      <type>                          <item>;
9  *      <type2>                         <item2>[<len>];
10  *      [...]
11  * };
12  *
13  * The <type> <item> is created by the __field(type, item) macro or
14  * the __array(type2, item2, len) macro.
15  * We simply do "type item;", and that will create the fields
16  * in the structure.
17  */
18
19 #undef TRACE_FORMAT
20 #define TRACE_FORMAT(call, proto, args, fmt)
21
22 #undef __array
23 #define __array(type, item, len)        type    item[len];
24
25 #undef __field
26 #define __field(type, item)             type    item;
27
28 #undef TP_STRUCT__entry
29 #define TP_STRUCT__entry(args...) args
30
31 #undef TRACE_EVENT
32 #define TRACE_EVENT(name, proto, args, tstruct, assign, print)  \
33         struct ftrace_raw_##name {                              \
34                 struct trace_entry      ent;                    \
35                 tstruct                                         \
36         };                                                      \
37         static struct ftrace_event_call event_##name
38
39 #include <trace/trace_events.h>