]> git.karo-electronics.de Git - karo-tx-linux.git/blob - kernel/trace/trace_events_stage_1.h
tracing: add raw trace point recording infrastructure
[karo-tx-linux.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         struct ftrace_raw_##name {                                      \
23                 struct trace_entry      ent;                            \
24                 tstruct                                                 \
25         };                                                              \
26         static struct ftrace_event_call event_##name
27
28 #undef TRACE_STRUCT
29 #define TRACE_STRUCT(args...) args
30
31 #define TRACE_FIELD(type, item, assign) \
32         type item;
33
34 #include <trace/trace_event_types.h>