e74f0906ab1af0c5ca05e89e577a426c96c8644a
[linux-2.6.git] / kernel / trace / trace_event_types.h
1 #undef TRACE_SYSTEM
2 #define TRACE_SYSTEM    ftrace
3
4 /*
5  * We cheat and use the proto type field as the ID
6  * and args as the entry type (minus 'struct')
7  */
8 TRACE_EVENT_FORMAT(function, TRACE_FN, ftrace_entry, ignore,
9         TRACE_STRUCT(
10                 TRACE_FIELD(unsigned long, ip, ip)
11                 TRACE_FIELD(unsigned long, parent_ip, parent_ip)
12         ),
13         TP_RAW_FMT(" %lx <-- %lx")
14 );
15
16 TRACE_EVENT_FORMAT(funcgraph_entry, TRACE_GRAPH_ENT,
17                    ftrace_graph_ent_entry, ignore,
18         TRACE_STRUCT(
19                 TRACE_FIELD(unsigned long, graph_ent.func, func)
20                 TRACE_FIELD(int, graph_ent.depth, depth)
21         ),
22         TP_RAW_FMT("--> %lx (%d)")
23 );
24
25 TRACE_EVENT_FORMAT(funcgraph_exit, TRACE_GRAPH_RET,
26                    ftrace_graph_ret_entry, ignore,
27         TRACE_STRUCT(
28                 TRACE_FIELD(unsigned long, ret.func, func)
29                 TRACE_FIELD(unsigned long long, ret.calltime, calltime)
30                 TRACE_FIELD(unsigned long long, ret.rettime, rettime)
31                 TRACE_FIELD(unsigned long, ret.overrun, overrun)
32                 TRACE_FIELD(int, ret.depth, depth)
33         ),
34         TP_RAW_FMT("<-- %lx (%d)")
35 );
36
37 TRACE_EVENT_FORMAT(wakeup, TRACE_WAKE, ctx_switch_entry, ignore,
38         TRACE_STRUCT(
39                 TRACE_FIELD(unsigned int, prev_pid, prev_pid)
40                 TRACE_FIELD(unsigned char, prev_prio, prev_prio)
41                 TRACE_FIELD(unsigned char, prev_state, prev_state)
42                 TRACE_FIELD(unsigned int, next_pid, next_pid)
43                 TRACE_FIELD(unsigned char, next_prio, next_prio)
44                 TRACE_FIELD(unsigned char, next_state, next_state)
45                 TRACE_FIELD(unsigned int, next_cpu, next_cpu)
46         ),
47         TP_RAW_FMT("%u:%u:%u  ==+ %u:%u:%u [%03u]")
48 );
49
50 TRACE_EVENT_FORMAT(context_switch, TRACE_CTX, ctx_switch_entry, ignore,
51         TRACE_STRUCT(
52                 TRACE_FIELD(unsigned int, prev_pid, prev_pid)
53                 TRACE_FIELD(unsigned char, prev_prio, prev_prio)
54                 TRACE_FIELD(unsigned char, prev_state, prev_state)
55                 TRACE_FIELD(unsigned int, next_pid, next_pid)
56                 TRACE_FIELD(unsigned char, next_prio, next_prio)
57                 TRACE_FIELD(unsigned char, next_state, next_state)
58                 TRACE_FIELD(unsigned int, next_cpu, next_cpu)
59         ),
60         TP_RAW_FMT("%u:%u:%u  ==+ %u:%u:%u [%03u]")
61 );
62
63 TRACE_EVENT_FORMAT_NOFILTER(special, TRACE_SPECIAL, special_entry, ignore,
64         TRACE_STRUCT(
65                 TRACE_FIELD(unsigned long, arg1, arg1)
66                 TRACE_FIELD(unsigned long, arg2, arg2)
67                 TRACE_FIELD(unsigned long, arg3, arg3)
68         ),
69         TP_RAW_FMT("(%08lx) (%08lx) (%08lx)")
70 );
71
72 /*
73  * Stack-trace entry:
74  */
75
76 /* #define FTRACE_STACK_ENTRIES   8 */
77
78 TRACE_EVENT_FORMAT(kernel_stack, TRACE_STACK, stack_entry, ignore,
79         TRACE_STRUCT(
80                 TRACE_FIELD(unsigned long, caller[0], stack0)
81                 TRACE_FIELD(unsigned long, caller[1], stack1)
82                 TRACE_FIELD(unsigned long, caller[2], stack2)
83                 TRACE_FIELD(unsigned long, caller[3], stack3)
84                 TRACE_FIELD(unsigned long, caller[4], stack4)
85                 TRACE_FIELD(unsigned long, caller[5], stack5)
86                 TRACE_FIELD(unsigned long, caller[6], stack6)
87                 TRACE_FIELD(unsigned long, caller[7], stack7)
88         ),
89         TP_RAW_FMT("\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n"
90                  "\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n")
91 );
92
93 TRACE_EVENT_FORMAT(user_stack, TRACE_USER_STACK, userstack_entry, ignore,
94         TRACE_STRUCT(
95                 TRACE_FIELD(unsigned long, caller[0], stack0)
96                 TRACE_FIELD(unsigned long, caller[1], stack1)
97                 TRACE_FIELD(unsigned long, caller[2], stack2)
98                 TRACE_FIELD(unsigned long, caller[3], stack3)
99                 TRACE_FIELD(unsigned long, caller[4], stack4)
100                 TRACE_FIELD(unsigned long, caller[5], stack5)
101                 TRACE_FIELD(unsigned long, caller[6], stack6)
102                 TRACE_FIELD(unsigned long, caller[7], stack7)
103         ),
104         TP_RAW_FMT("\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n"
105                  "\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n")
106 );
107
108 TRACE_EVENT_FORMAT(bprint, TRACE_BPRINT, bprint_entry, ignore,
109         TRACE_STRUCT(
110                 TRACE_FIELD(unsigned long, ip, ip)
111                 TRACE_FIELD(char *, fmt, fmt)
112                 TRACE_FIELD_ZERO(char, buf)
113         ),
114         TP_RAW_FMT("%08lx (%d) fmt:%p %s")
115 );
116
117 TRACE_EVENT_FORMAT(print, TRACE_PRINT, print_entry, ignore,
118         TRACE_STRUCT(
119                 TRACE_FIELD(unsigned long, ip, ip)
120                 TRACE_FIELD_ZERO(char, buf)
121         ),
122         TP_RAW_FMT("%08lx (%d) fmt:%p %s")
123 );
124
125 TRACE_EVENT_FORMAT(branch, TRACE_BRANCH, trace_branch, ignore,
126         TRACE_STRUCT(
127                 TRACE_FIELD(unsigned int, line, line)
128                 TRACE_FIELD_SPECIAL(char func[TRACE_FUNC_SIZE+1], func,
129                                     TRACE_FUNC_SIZE+1, func)
130                 TRACE_FIELD_SPECIAL(char file[TRACE_FUNC_SIZE+1], file,
131                                     TRACE_FUNC_SIZE+1, file)
132                 TRACE_FIELD(char, correct, correct)
133         ),
134         TP_RAW_FMT("%u:%s:%s (%u)")
135 );
136
137 TRACE_EVENT_FORMAT(hw_branch, TRACE_HW_BRANCHES, hw_branch_entry, ignore,
138         TRACE_STRUCT(
139                 TRACE_FIELD(u64, from, from)
140                 TRACE_FIELD(u64, to, to)
141         ),
142         TP_RAW_FMT("from: %llx to: %llx")
143 );
144
145 TRACE_EVENT_FORMAT(power, TRACE_POWER, trace_power, ignore,
146         TRACE_STRUCT(
147                 TRACE_FIELD_SIGN(ktime_t, state_data.stamp, stamp, 1)
148                 TRACE_FIELD_SIGN(ktime_t, state_data.end, end, 1)
149                 TRACE_FIELD(int, state_data.type, type)
150                 TRACE_FIELD(int, state_data.state, state)
151         ),
152         TP_RAW_FMT("%llx->%llx type:%u state:%u")
153 );
154
155 TRACE_EVENT_FORMAT(kmem_alloc, TRACE_KMEM_ALLOC, kmemtrace_alloc_entry, ignore,
156         TRACE_STRUCT(
157                 TRACE_FIELD(enum kmemtrace_type_id, type_id, type_id)
158                 TRACE_FIELD(unsigned long, call_site, call_site)
159                 TRACE_FIELD(const void *, ptr, ptr)
160                 TRACE_FIELD(size_t, bytes_req, bytes_req)
161                 TRACE_FIELD(size_t, bytes_alloc, bytes_alloc)
162                 TRACE_FIELD(gfp_t, gfp_flags, gfp_flags)
163                 TRACE_FIELD(int, node, node)
164         ),
165         TP_RAW_FMT("type:%u call_site:%lx ptr:%p req:%lu alloc:%lu"
166                  " flags:%x node:%d")
167 );
168
169 TRACE_EVENT_FORMAT(kmem_free, TRACE_KMEM_FREE, kmemtrace_free_entry, ignore,
170         TRACE_STRUCT(
171                 TRACE_FIELD(enum kmemtrace_type_id, type_id, type_id)
172                 TRACE_FIELD(unsigned long, call_site, call_site)
173                 TRACE_FIELD(const void *, ptr, ptr)
174         ),
175         TP_RAW_FMT("type:%u call_site:%lx ptr:%p")
176 );
177
178 #undef TRACE_SYSTEM