ust: add kernel versions for tracer.c (ltt-tracer.c) tracer.h (ltt-tracer.h) and...
[ust.git] / libtracing / tracercore.c
1 /*
2 * LTT core in-kernel infrastructure.
3 *
4 * Copyright 2006 - Mathieu Desnoyers mathieu.desnoyers@polymtl.ca
5 *
6 * Distributed under the GPL license
7 */
8
9 #include <linux/ltt-core.h>
10 #include <linux/percpu.h>
11 #include <linux/module.h>
12 #include <linux/debugfs.h>
13
14 /* Traces structures */
15 struct ltt_traces ltt_traces = {
16 .setup_head = LIST_HEAD_INIT(ltt_traces.setup_head),
17 .head = LIST_HEAD_INIT(ltt_traces.head),
18 };
19 EXPORT_SYMBOL(ltt_traces);
20
21 /* Traces list writer locking */
22 static DEFINE_MUTEX(ltt_traces_mutex);
23
24 /* dentry of ltt's root dir */
25 static struct dentry *ltt_root_dentry;
26 struct dentry *get_ltt_root(void)
27 {
28 if (!ltt_root_dentry) {
29 ltt_root_dentry = debugfs_create_dir(LTT_ROOT, NULL);
30 if (!ltt_root_dentry)
31 printk(KERN_ERR "LTT : create ltt root dir failed\n");
32 }
33 return ltt_root_dentry;
34 }
35 EXPORT_SYMBOL_GPL(get_ltt_root);
36
37 void ltt_lock_traces(void)
38 {
39 mutex_lock(&ltt_traces_mutex);
40 }
41 EXPORT_SYMBOL_GPL(ltt_lock_traces);
42
43 void ltt_unlock_traces(void)
44 {
45 mutex_unlock(&ltt_traces_mutex);
46 }
47 EXPORT_SYMBOL_GPL(ltt_unlock_traces);
48
49 DEFINE_PER_CPU(unsigned int, ltt_nesting);
50 EXPORT_PER_CPU_SYMBOL(ltt_nesting);
51
52 int ltt_run_filter_default(void *trace, uint16_t eID)
53 {
54 return 1;
55 }
56
57 /* This function pointer is protected by a trace activation check */
58 ltt_run_filter_functor ltt_run_filter = ltt_run_filter_default;
59 EXPORT_SYMBOL_GPL(ltt_run_filter);
60
61 void ltt_filter_register(ltt_run_filter_functor func)
62 {
63 ltt_run_filter = func;
64 }
65 EXPORT_SYMBOL_GPL(ltt_filter_register);
66
67 void ltt_filter_unregister(void)
68 {
69 ltt_run_filter = ltt_run_filter_default;
70 }
71 EXPORT_SYMBOL_GPL(ltt_filter_unregister);
This page took 0.0860649999999999 seconds and 4 git commands to generate.