lttng-modules v0.19-stable: setup_trace_write: Fix recursive locking
[lttng-modules.git] / ltt-tracer-core.h
CommitLineData
1c8284eb
MD
1/*
2 * Copyright (C) 2005,2006 Mathieu Desnoyers (mathieu.desnoyers@polymtl.ca)
3 *
4 * This contains the core definitions for the Linux Trace Toolkit.
5 *
6 * Dual LGPL v2.1/GPL v2 license.
7 */
8
9#ifndef LTT_TRACER_CORE_H
10#define LTT_TRACER_CORE_H
11
12#include <linux/list.h>
13#include <linux/percpu.h>
14#include <linux/ltt-core.h>
15
16/* ltt's root dir in debugfs */
17#define LTT_ROOT "ltt"
18
19/*
20 * All modifications of ltt_traces must be done by ltt-tracer.c, while holding
21 * the semaphore. Only reading of this information can be done elsewhere, with
22 * the RCU mechanism : the preemption must be disabled while reading the
23 * list.
24 */
25struct ltt_traces {
26 struct list_head setup_head; /* Pre-allocated traces list */
27 struct list_head head; /* Allocated Traces list */
28 unsigned int num_active_traces; /* Number of active traces */
29} ____cacheline_aligned;
30
31extern struct ltt_traces ltt_traces;
32
33/*
34 * get dentry of ltt's root dir
35 */
36struct dentry *get_ltt_root(void);
37
38void put_ltt_root(void);
39
40/* Keep track of trap nesting inside LTT */
41DECLARE_PER_CPU(unsigned int, ltt_nesting);
42
43typedef int (*ltt_run_filter_functor)(void *trace, uint16_t eID);
44
45extern ltt_run_filter_functor ltt_run_filter;
46
47extern void ltt_filter_register(ltt_run_filter_functor func);
48extern void ltt_filter_unregister(void);
49
50#endif /* LTT_TRACER_CORE_H */
This page took 0.023767 seconds and 4 git commands to generate.