aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2011-05-04 09:27:52 -0400
committerSteven Rostedt <rostedt@goodmis.org>2011-05-18 15:29:50 -0400
commitb848914ce39589d89ee0078a6d1ef452b464729e (patch)
tree542bf09ae3c2d9118833132621585fb458e2a003 /include/linux
parent07fd5515f3b5c20704707f63e7f4485b534508a8 (diff)
ftrace: Implement separate user function filtering
ftrace_ops that are registered to trace functions can now be agnostic to each other in respect to what functions they trace. Each ops has their own hash of the functions they want to trace and a hash to what they do not want to trace. A empty hash for the functions they want to trace denotes all functions should be traced that are not in the notrace hash. Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/ftrace.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h
index ab1c46e70bb6..4609c0ece79a 100644
--- a/include/linux/ftrace.h
+++ b/include/linux/ftrace.h
@@ -31,13 +31,18 @@ typedef void (*ftrace_func_t)(unsigned long ip, unsigned long parent_ip);
31 31
32struct ftrace_hash; 32struct ftrace_hash;
33 33
34enum {
35 FTRACE_OPS_FL_ENABLED = 1 << 0,
36 FTRACE_OPS_FL_GLOBAL = 1 << 1,
37};
38
34struct ftrace_ops { 39struct ftrace_ops {
35 ftrace_func_t func; 40 ftrace_func_t func;
36 struct ftrace_ops *next; 41 struct ftrace_ops *next;
42 unsigned long flags;
37#ifdef CONFIG_DYNAMIC_FTRACE 43#ifdef CONFIG_DYNAMIC_FTRACE
38 struct ftrace_hash *notrace_hash; 44 struct ftrace_hash *notrace_hash;
39 struct ftrace_hash *filter_hash; 45 struct ftrace_hash *filter_hash;
40 unsigned long flags;
41#endif 46#endif
42}; 47};
43 48