Mass rename: ltt_*/ltt-* to LTTNG_*/LTTNG-*
[lttng-modules.git] / wrapper / ftrace.h
1 #ifndef _LTTNG_WRAPPER_FTRACE_H
2 #define _LTTNG_WRAPPER_FTRACE_H
3
4 /*
5 * Copyright (C) 2011 Mathieu Desnoyers (mathieu.desnoyers@efficios.com)
6 *
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
9 * modules.
10 *
11 * Dual LGPL v2.1/GPL v2 license.
12 */
13
14 #include <linux/ftrace.h>
15
16 #ifdef CONFIG_KALLSYMS
17
18 #include <linux/kallsyms.h>
19 #include "kallsyms.h"
20
21 static inline
22 int wrapper_register_ftrace_function_probe(char *glob,
23 struct ftrace_probe_ops *ops, void *data)
24 {
25 int (*register_ftrace_function_probe_sym)(char *glob,
26 struct ftrace_probe_ops *ops, void *data);
27
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);
31 } else {
32 printk(KERN_WARNING "LTTng: register_ftrace_function_probe symbol lookup failed.\n");
33 return -EINVAL;
34 }
35 }
36
37 static inline
38 void wrapper_unregister_ftrace_function_probe(char *glob,
39 struct ftrace_probe_ops *ops, void *data)
40 {
41 void (*unregister_ftrace_function_probe_sym)(char *glob,
42 struct ftrace_probe_ops *ops, void *data);
43
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);
47 } else {
48 printk(KERN_WARNING "LTTng: unregister_ftrace_function_probe symbol lookup failed.\n");
49 WARN_ON(1);
50 }
51 }
52
53 #else
54
55 static inline
56 int wrapper_register_ftrace_function_probe(char *glob,
57 struct ftrace_probe_ops *ops, void *data)
58 {
59 return register_ftrace_function_probe(glob, ops, data);
60 }
61
62 static inline
63 void wrapper_unregister_ftrace_function_probe(char *glob,
64 struct ftrace_probe_ops *ops, void *data)
65 {
66 return unregister_ftrace_function_probe(glob, ops, data);
67 }
68 #endif
69
70 #endif /* _LTTNG_WRAPPER_FTRACE_H */
This page took 0.030904 seconds and 4 git commands to generate.