Mass rename: ltt_*/ltt-* to LTTNG_*/LTTNG-*
[lttng-modules.git] / wrapper / ftrace.h
CommitLineData
a90917c3
MD
1#ifndef _LTTNG_WRAPPER_FTRACE_H
2#define _LTTNG_WRAPPER_FTRACE_H
5a9479dc
MD
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>
c539a324 19#include "kallsyms.h"
5a9479dc
MD
20
21static inline
22int 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
c539a324 28 register_ftrace_function_probe_sym = (void *) kallsyms_lookup_funcptr("register_ftrace_function_probe");
5a9479dc
MD
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
37static inline
38void 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
c539a324 44 unregister_ftrace_function_probe_sym = (void *) kallsyms_lookup_funcptr("unregister_ftrace_function_probe");
5a9479dc
MD
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
55static inline
56int wrapper_register_ftrace_function_probe(char *glob,
c4c357a4 57 struct ftrace_probe_ops *ops, void *data)
5a9479dc 58{
9fe47d18 59 return register_ftrace_function_probe(glob, ops, data);
5a9479dc
MD
60}
61
62static inline
63void wrapper_unregister_ftrace_function_probe(char *glob,
c4c357a4 64 struct ftrace_probe_ops *ops, void *data)
5a9479dc 65{
9fe47d18 66 return unregister_ftrace_function_probe(glob, ops, data);
5a9479dc
MD
67}
68#endif
69
a90917c3 70#endif /* _LTTNG_WRAPPER_FTRACE_H */
This page took 0.026007 seconds and 4 git commands to generate.