ust: add kernel versions for tracer.c (ltt-tracer.c) tracer.h (ltt-tracer.h) and...
[ust.git] / libtracing / tracercore.c
CommitLineData
9dad1eb8
PMF
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 */
15struct ltt_traces ltt_traces = {
16 .setup_head = LIST_HEAD_INIT(ltt_traces.setup_head),
17 .head = LIST_HEAD_INIT(ltt_traces.head),
18};
19EXPORT_SYMBOL(ltt_traces);
20
21/* Traces list writer locking */
22static DEFINE_MUTEX(ltt_traces_mutex);
23
24/* dentry of ltt's root dir */
25static struct dentry *ltt_root_dentry;
26struct 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}
35EXPORT_SYMBOL_GPL(get_ltt_root);
36
37void ltt_lock_traces(void)
38{
39 mutex_lock(&ltt_traces_mutex);
40}
41EXPORT_SYMBOL_GPL(ltt_lock_traces);
42
43void ltt_unlock_traces(void)
44{
45 mutex_unlock(&ltt_traces_mutex);
46}
47EXPORT_SYMBOL_GPL(ltt_unlock_traces);
48
49DEFINE_PER_CPU(unsigned int, ltt_nesting);
50EXPORT_PER_CPU_SYMBOL(ltt_nesting);
51
52int 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 */
58ltt_run_filter_functor ltt_run_filter = ltt_run_filter_default;
59EXPORT_SYMBOL_GPL(ltt_run_filter);
60
61void ltt_filter_register(ltt_run_filter_functor func)
62{
63 ltt_run_filter = func;
64}
65EXPORT_SYMBOL_GPL(ltt_filter_register);
66
67void ltt_filter_unregister(void)
68{
69 ltt_run_filter = ltt_run_filter_default;
70}
71EXPORT_SYMBOL_GPL(ltt_filter_unregister);
This page took 0.02404 seconds and 4 git commands to generate.