aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-02-19 12:13:33 +0100
committerIngo Molnar <mingo@elte.hu>2009-02-19 12:13:33 +0100
commit4cd0332db7e8f57cc082bab11d82c064a9721737 (patch)
treeb6de7771d67c5bf6eeb890fa0f5a901365104b98 /include/linux
parentMerge branches 'tracing/blktrace', 'tracing/ftrace' and 'tracing/urgent' into tracing/core (diff)
parenttracing/function-graph-tracer: make arch generic push pop functions (diff)
downloadlinux-dev-4cd0332db7e8f57cc082bab11d82c064a9721737.tar.xz
linux-dev-4cd0332db7e8f57cc082bab11d82c064a9721737.zip
Merge branch 'mainline/function-graph' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/function-graph-tracer
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/ftrace.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h
index 9d224c43e634..915f4723fc8b 100644
--- a/include/linux/ftrace.h
+++ b/include/linux/ftrace.h
@@ -404,6 +404,30 @@ struct ftrace_graph_ret {
#ifdef CONFIG_FUNCTION_GRAPH_TRACER
/*
+ * Stack of return addresses for functions
+ * of a thread.
+ * Used in struct thread_info
+ */
+struct ftrace_ret_stack {
+ unsigned long ret;
+ unsigned long func;
+ unsigned long long calltime;
+};
+
+/*
+ * Primary handler of a function return.
+ * It relays on ftrace_return_to_handler.
+ * Defined in entry_32/64.S
+ */
+extern void return_to_handler(void);
+
+extern int
+ftrace_push_return_trace(unsigned long ret, unsigned long long time,
+ unsigned long func, int *depth);
+extern void
+ftrace_pop_return_trace(struct ftrace_graph_ret *trace, unsigned long *ret);
+
+/*
* Sometimes we don't want to trace a function with the function
* graph tracer but we want them to keep traced by the usual function
* tracer if the function graph tracer is not configured.