summaryrefslogtreecommitdiffstats
path: root/include/linux/ftrace.h
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/ftrace.h
parent40999096e8b9872199bf56ecd0c4d98397ccaf2f (diff)
parent712406a6bf59ebf4a00358bb59a4a2a1b2953d90 (diff)
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/ftrace.h')
-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 9d224c43e63..915f4723fc8 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.