diff options
author | Steven Rostedt <srostedt@redhat.com> | 2008-12-23 23:24:13 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-12-29 06:46:12 -0500 |
commit | f633cef0200bbaec539e2dbb0bc4bed7f022f98b (patch) | |
tree | 725d0b181b8e417303e27fa9e62d06b780fe4934 /kernel/trace/trace_output.h | |
parent | f0868d1e23a8efec33beb3aa688aab7fdb1ae093 (diff) |
ftrace: change trace.c to use registered events
Impact: rework trace.c to use new event register API
Almost every ftrace event has to implement its output display in
trace.c through a different function. Some events did not handle
all the formats (trace, latency-trace, raw, hex, binary), and
this method does not scale well.
This patch converts the format functions to use the event API to
find the event and and print its format. Currently, we have
a print function for trace, latency_trace, raw, hex and binary.
A trace_nop_print is available if the event wants to avoid output
on a particular format.
Perhaps other tracers could use this in the future (like mmiotrace and
function_graph).
Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/trace/trace_output.h')
-rw-r--r-- | kernel/trace/trace_output.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/kernel/trace/trace_output.h b/kernel/trace/trace_output.h index 1fcc76e1378e..ecab4ea4a4fd 100644 --- a/kernel/trace/trace_output.h +++ b/kernel/trace/trace_output.h | |||
@@ -36,8 +36,24 @@ struct trace_event *ftrace_find_event(int type); | |||
36 | int register_ftrace_event(struct trace_event *event); | 36 | int register_ftrace_event(struct trace_event *event); |
37 | int unregister_ftrace_event(struct trace_event *event); | 37 | int unregister_ftrace_event(struct trace_event *event); |
38 | 38 | ||
39 | int | ||
40 | trace_nop_print(struct trace_seq *s, struct trace_entry *entry, int flags); | ||
41 | |||
39 | #define MAX_MEMHEX_BYTES 8 | 42 | #define MAX_MEMHEX_BYTES 8 |
40 | #define HEX_CHARS (MAX_MEMHEX_BYTES*2 + 1) | 43 | #define HEX_CHARS (MAX_MEMHEX_BYTES*2 + 1) |
41 | 44 | ||
45 | #define SEQ_PUT_FIELD_RET(s, x) \ | ||
46 | do { \ | ||
47 | if (!trace_seq_putmem(s, &(x), sizeof(x))) \ | ||
48 | return 0; \ | ||
49 | } while (0) | ||
50 | |||
51 | #define SEQ_PUT_HEX_FIELD_RET(s, x) \ | ||
52 | do { \ | ||
53 | BUILD_BUG_ON(sizeof(x) > MAX_MEMHEX_BYTES); \ | ||
54 | if (!trace_seq_putmem_hex(s, &(x), sizeof(x))) \ | ||
55 | return 0; \ | ||
56 | } while (0) | ||
57 | |||
42 | #endif | 58 | #endif |
43 | 59 | ||