1 #ifndef _LTT_WRAPPER_FTRACE_H
2 #define _LTT_WRAPPER_FTRACE_H
5 * Copyright (C) 2011 Mathieu Desnoyers (mathieu.desnoyers@efficios.com)
7 * wrapper around vmalloc_sync_all. Using KALLSYMS to get its address when
8 * available, else we need to have a kernel that exports this function to GPL
11 * Dual LGPL v2.1/GPL v2 license.
14 #include <linux/ftrace.h>
16 #ifdef CONFIG_KALLSYMS
18 #include <linux/kallsyms.h>
22 int wrapper_register_ftrace_function_probe(char *glob
,
23 struct ftrace_probe_ops
*ops
, void *data
)
25 int (*register_ftrace_function_probe_sym
)(char *glob
,
26 struct ftrace_probe_ops
*ops
, void *data
);
28 register_ftrace_function_probe_sym
= (void *) kallsyms_lookup_funcptr("register_ftrace_function_probe");
29 if (register_ftrace_function_probe_sym
) {
30 return register_ftrace_function_probe_sym(glob
, ops
, data
);
32 printk(KERN_WARNING
"LTTng: register_ftrace_function_probe symbol lookup failed.\n");
38 void wrapper_unregister_ftrace_function_probe(char *glob
,
39 struct ftrace_probe_ops
*ops
, void *data
)
41 void (*unregister_ftrace_function_probe_sym
)(char *glob
,
42 struct ftrace_probe_ops
*ops
, void *data
);
44 unregister_ftrace_function_probe_sym
= (void *) kallsyms_lookup_funcptr("unregister_ftrace_function_probe");
45 if (unregister_ftrace_function_probe_sym
) {
46 unregister_ftrace_function_probe_sym(glob
, ops
, data
);
48 printk(KERN_WARNING
"LTTng: unregister_ftrace_function_probe symbol lookup failed.\n");
56 int wrapper_register_ftrace_function_probe(char *glob
,
57 struct ftrace_probe_ops
*ops
, void *data
)
59 return register_ftrace_function_probe(glob
, ops
, data
);
63 void wrapper_unregister_ftrace_function_probe(char *glob
,
64 struct ftrace_probe_ops
*ops
, void *data
)
66 return unregister_ftrace_function_probe(glob
, ops
, data
);
70 #endif /* _LTT_WRAPPER_FTRACE_H */