2 * LTT core in-kernel infrastructure.
4 * Copyright 2006 - Mathieu Desnoyers mathieu.desnoyers@polymtl.ca
6 * Distributed under the GPL license
9 //ust// #include <linux/ltt-core.h>
10 //ust// #include <linux/percpu.h>
11 //ust// #include <linux/module.h>
12 //ust// #include <linux/debugfs.h>
13 #include "tracercore.h"
15 /* Traces structures */
16 struct ltt_traces ltt_traces
= {
17 .setup_head
= LIST_HEAD_INIT(ltt_traces
.setup_head
),
18 .head
= LIST_HEAD_INIT(ltt_traces
.head
),
20 //ust// EXPORT_SYMBOL(ltt_traces);
22 /* Traces list writer locking */
23 static DEFINE_MUTEX(ltt_traces_mutex
);
25 /* dentry of ltt's root dir */
26 //ust// static struct dentry *ltt_root_dentry;
27 //ust// struct dentry *get_ltt_root(void)
29 //ust// if (!ltt_root_dentry) {
30 //ust// ltt_root_dentry = debugfs_create_dir(LTT_ROOT, NULL);
31 //ust// if (!ltt_root_dentry)
32 //ust// printk(KERN_ERR "LTT : create ltt root dir failed\n");
34 //ust// return ltt_root_dentry;
36 //ust// EXPORT_SYMBOL_GPL(get_ltt_root);
38 void ltt_lock_traces(void)
40 mutex_lock(<t_traces_mutex
);
42 //ust// EXPORT_SYMBOL_GPL(ltt_lock_traces);
44 void ltt_unlock_traces(void)
46 mutex_unlock(<t_traces_mutex
);
48 //ust// EXPORT_SYMBOL_GPL(ltt_unlock_traces);
50 //ust// DEFINE_PER_CPU(unsigned int, ltt_nesting);
51 //ust// EXPORT_PER_CPU_SYMBOL(ltt_nesting);
53 int ltt_run_filter_default(void *trace
, uint16_t eID
)
58 /* This function pointer is protected by a trace activation check */
59 ltt_run_filter_functor ltt_run_filter
= ltt_run_filter_default
;
60 //ust// EXPORT_SYMBOL_GPL(ltt_run_filter);
62 void ltt_filter_register(ltt_run_filter_functor func
)
64 ltt_run_filter
= func
;
66 //ust// EXPORT_SYMBOL_GPL(ltt_filter_register);
68 void ltt_filter_unregister(void)
70 ltt_run_filter
= ltt_run_filter_default
;
72 //ust// EXPORT_SYMBOL_GPL(ltt_filter_unregister);