summaryrefslogtreecommitdiff
path: root/include/linux/ftrace.h
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2008-05-12 23:20:43 +0400
committerThomas Gleixner <tglx@linutronix.de>2008-05-23 22:33:35 +0400
commit3c1720f00bb619302ba19d55986ab565e74d06db (patch)
treed58aaa54bc8e7a465597f385de36204c3b0b9cf8 /include/linux/ftrace.h
parentdfa60aba04dae7833d75b2e2be124bb7cfb8239f (diff)
downloadlinux-3c1720f00bb619302ba19d55986ab565e74d06db.tar.xz
ftrace: move memory management out of arch code
This patch moves the memory management of the ftrace records out of the arch code and into the generic code making the arch code simpler. Signed-off-by: Steven Rostedt <srostedt@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include/linux/ftrace.h')
-rw-r--r--include/linux/ftrace.h18
1 files changed, 11 insertions, 7 deletions
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h
index ccd8537dbdb7..d509ad6c9cb8 100644
--- a/include/linux/ftrace.h
+++ b/include/linux/ftrace.h
@@ -42,19 +42,23 @@ extern void mcount(void);
# define FTRACE_HASHBITS 10
# define FTRACE_HASHSIZE (1<<FTRACE_HASHBITS)
+enum {
+ FTRACE_FL_FAILED = (1<<0),
+};
+
struct dyn_ftrace {
struct hlist_node node;
unsigned long ip;
+ unsigned long flags;
};
/* defined in arch */
-extern struct dyn_ftrace *
-ftrace_alloc_shutdown_node(unsigned long ip);
-extern int ftrace_shutdown_arch_init(void);
-extern void ftrace_code_disable(struct dyn_ftrace *rec);
-extern void ftrace_startup_code(void);
-extern void ftrace_shutdown_code(void);
-extern void ftrace_shutdown_replenish(void);
+extern int ftrace_ip_converted(unsigned long ip);
+extern unsigned char *ftrace_nop_replace(void);
+extern unsigned char *ftrace_call_replace(unsigned long ip, unsigned long addr);
+extern int ftrace_dyn_arch_init(void);
+extern int ftrace_modify_code(unsigned long ip, unsigned char *old_code,
+ unsigned char *new_code);
#endif
#ifdef CONFIG_FRAME_POINTER