diff options
author | Li Zefan <lizf@cn.fujitsu.com> | 2009-08-19 03:54:32 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-08-19 09:02:24 -0400 |
commit | e647d6b314266adb904d4b84973eda0afa856946 (patch) | |
tree | e4f18b57d37a25910b3d19b6c2461f87db0084a3 /kernel/trace | |
parent | 14be96c9716cb8c46dca94bd890defd7856e0734 (diff) |
tracing/events: Add trace_define_common_fields()
Extract duplicate code. Also prepare for the later patch.
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Cc: Jason Baron <jbaron@redhat.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <4A8BAFB8.1010304@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/trace')
-rw-r--r-- | kernel/trace/trace_events.c | 22 | ||||
-rw-r--r-- | kernel/trace/trace_export.c | 8 |
2 files changed, 25 insertions, 5 deletions
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c index af8fb8ebef0b..9c7ecfb3416f 100644 --- a/kernel/trace/trace_events.c +++ b/kernel/trace/trace_events.c | |||
@@ -62,6 +62,28 @@ err: | |||
62 | } | 62 | } |
63 | EXPORT_SYMBOL_GPL(trace_define_field); | 63 | EXPORT_SYMBOL_GPL(trace_define_field); |
64 | 64 | ||
65 | #define __common_field(type, item) \ | ||
66 | ret = trace_define_field(call, #type, "common_" #item, \ | ||
67 | offsetof(typeof(ent), item), \ | ||
68 | sizeof(ent.item), \ | ||
69 | is_signed_type(type)); \ | ||
70 | if (ret) \ | ||
71 | return ret; | ||
72 | |||
73 | int trace_define_common_fields(struct ftrace_event_call *call) | ||
74 | { | ||
75 | int ret; | ||
76 | struct trace_entry ent; | ||
77 | |||
78 | __common_field(unsigned short, type); | ||
79 | __common_field(unsigned char, flags); | ||
80 | __common_field(unsigned char, preempt_count); | ||
81 | __common_field(int, pid); | ||
82 | __common_field(int, tgid); | ||
83 | |||
84 | return ret; | ||
85 | } | ||
86 | |||
65 | #ifdef CONFIG_MODULES | 87 | #ifdef CONFIG_MODULES |
66 | 88 | ||
67 | static void trace_destroy_fields(struct ftrace_event_call *call) | 89 | static void trace_destroy_fields(struct ftrace_event_call *call) |
diff --git a/kernel/trace/trace_export.c b/kernel/trace/trace_export.c index cf2c752a25bf..70875303ae46 100644 --- a/kernel/trace/trace_export.c +++ b/kernel/trace/trace_export.c | |||
@@ -189,11 +189,9 @@ ftrace_define_fields_##call(struct ftrace_event_call *event_call) \ | |||
189 | struct args field; \ | 189 | struct args field; \ |
190 | int ret; \ | 190 | int ret; \ |
191 | \ | 191 | \ |
192 | __common_field(unsigned char, type, 0); \ | 192 | ret = trace_define_common_fields(event_call); \ |
193 | __common_field(unsigned char, flags, 0); \ | 193 | if (ret) \ |
194 | __common_field(unsigned char, preempt_count, 0); \ | 194 | return ret; \ |
195 | __common_field(int, pid, 1); \ | ||
196 | __common_field(int, tgid, 1); \ | ||
197 | \ | 195 | \ |
198 | tstruct; \ | 196 | tstruct; \ |
199 | \ | 197 | \ |