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 "kernelcompat.h"
14 #include "tracercore.h"
16 /* Traces structures */
17 struct ltt_traces ltt_traces
= {
18 .setup_head
= LIST_HEAD_INIT(ltt_traces
.setup_head
),
19 .head
= LIST_HEAD_INIT(ltt_traces
.head
),
21 //ust// EXPORT_SYMBOL(ltt_traces);
23 /* Traces list writer locking */
24 static DEFINE_MUTEX(ltt_traces_mutex
);
26 /* dentry of ltt's root dir */
27 //ust// static struct dentry *ltt_root_dentry;
28 //ust// struct dentry *get_ltt_root(void)
30 //ust// if (!ltt_root_dentry) {
31 //ust// ltt_root_dentry = debugfs_create_dir(LTT_ROOT, NULL);
32 //ust// if (!ltt_root_dentry)
33 //ust// printk(KERN_ERR "LTT : create ltt root dir failed\n");
35 //ust// return ltt_root_dentry;
37 //ust// EXPORT_SYMBOL_GPL(get_ltt_root);
39 void ltt_lock_traces(void)
41 mutex_lock(<t_traces_mutex
);
43 //ust// EXPORT_SYMBOL_GPL(ltt_lock_traces);
45 void ltt_unlock_traces(void)
47 mutex_unlock(<t_traces_mutex
);
49 //ust// EXPORT_SYMBOL_GPL(ltt_unlock_traces);
51 //ust// DEFINE_PER_CPU(unsigned int, ltt_nesting);
52 //ust// EXPORT_PER_CPU_SYMBOL(ltt_nesting);
53 unsigned int ltt_nesting
;
55 int ltt_run_filter_default(void *trace
, uint16_t eID
)
60 /* This function pointer is protected by a trace activation check */
61 ltt_run_filter_functor ltt_run_filter
= ltt_run_filter_default
;
62 //ust// EXPORT_SYMBOL_GPL(ltt_run_filter);
64 void ltt_filter_register(ltt_run_filter_functor func
)
66 ltt_run_filter
= func
;
68 //ust// EXPORT_SYMBOL_GPL(ltt_filter_register);
70 void ltt_filter_unregister(void)
72 ltt_run_filter
= ltt_run_filter_default
;
74 //ust// EXPORT_SYMBOL_GPL(ltt_filter_unregister);