aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace
diff options
context:
space:
mode:
authorLi Zefan <lizf@cn.fujitsu.com>2009-09-09 21:34:19 -0400
committerSteven Rostedt <rostedt@goodmis.org>2009-09-09 23:54:11 -0400
commit197e2eabc90c203d1086916b7f66694ba5fbb937 (patch)
tree80734d0e96ac0f4ffc1bcac4198d537804dae037 /kernel/trace
parenta5921c6c37d51ee2079ca3c69ea6f7b7384f5d87 (diff)
tracing: move PRED macros to trace_events_filter.c
Move DEFINE_COMPARISON_PRED() and DEFINE_EQUALITY_PRED() to kernel/trace/trace_events_filter.c Signed-off-by: Li Zefan <lizf@cn.fujitsu.com> LKML-Reference: <4AA8579B.4020706@cn.fujitsu.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel/trace')
-rw-r--r--kernel/trace/trace.h41
-rw-r--r--kernel/trace/trace_events_filter.c41
2 files changed, 41 insertions, 41 deletions
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
index 2163d185fe2..acaa68060eb 100644
--- a/kernel/trace/trace.h
+++ b/kernel/trace/trace.h
@@ -800,47 +800,6 @@ filter_check_discard(struct ftrace_event_call *call, void *rec,
800 return 0; 800 return 0;
801} 801}
802 802
803#define DEFINE_COMPARISON_PRED(type) \
804static int filter_pred_##type(struct filter_pred *pred, void *event, \
805 int val1, int val2) \
806{ \
807 type *addr = (type *)(event + pred->offset); \
808 type val = (type)pred->val; \
809 int match = 0; \
810 \
811 switch (pred->op) { \
812 case OP_LT: \
813 match = (*addr < val); \
814 break; \
815 case OP_LE: \
816 match = (*addr <= val); \
817 break; \
818 case OP_GT: \
819 match = (*addr > val); \
820 break; \
821 case OP_GE: \
822 match = (*addr >= val); \
823 break; \
824 default: \
825 break; \
826 } \
827 \
828 return match; \
829}
830
831#define DEFINE_EQUALITY_PRED(size) \
832static int filter_pred_##size(struct filter_pred *pred, void *event, \
833 int val1, int val2) \
834{ \
835 u##size *addr = (u##size *)(event + pred->offset); \
836 u##size val = (u##size)pred->val; \
837 int match; \
838 \
839 match = (val == *addr) ^ pred->not; \
840 \
841 return match; \
842}
843
844extern struct mutex event_mutex; 803extern struct mutex event_mutex;
845extern struct list_head ftrace_events; 804extern struct list_head ftrace_events;
846 805
diff --git a/kernel/trace/trace_events_filter.c b/kernel/trace/trace_events_filter.c
index 93660fbbf62..23245785927 100644
--- a/kernel/trace/trace_events_filter.c
+++ b/kernel/trace/trace_events_filter.c
@@ -121,6 +121,47 @@ struct filter_parse_state {
121 } operand; 121 } operand;
122}; 122};
123 123
124#define DEFINE_COMPARISON_PRED(type) \
125static int filter_pred_##type(struct filter_pred *pred, void *event, \
126 int val1, int val2) \
127{ \
128 type *addr = (type *)(event + pred->offset); \
129 type val = (type)pred->val; \
130 int match = 0; \
131 \
132 switch (pred->op) { \
133 case OP_LT: \
134 match = (*addr < val); \
135 break; \
136 case OP_LE: \
137 match = (*addr <= val); \
138 break; \
139 case OP_GT: \
140 match = (*addr > val); \
141 break; \
142 case OP_GE: \
143 match = (*addr >= val); \
144 break; \
145 default: \
146 break; \
147 } \
148 \
149 return match; \
150}
151
152#define DEFINE_EQUALITY_PRED(size) \
153static int filter_pred_##size(struct filter_pred *pred, void *event, \
154 int val1, int val2) \
155{ \
156 u##size *addr = (u##size *)(event + pred->offset); \
157 u##size val = (u##size)pred->val; \
158 int match; \
159 \
160 match = (val == *addr) ^ pred->not; \
161 \
162 return match; \
163}
164
124DEFINE_COMPARISON_PRED(s64); 165DEFINE_COMPARISON_PRED(s64);
125DEFINE_COMPARISON_PRED(u64); 166DEFINE_COMPARISON_PRED(u64);
126DEFINE_COMPARISON_PRED(s32); 167DEFINE_COMPARISON_PRED(s32);