Commit | Line | Data |
---|---|---|
7dd08bec MD |
1 | #ifndef _LTTNG_TRACER_CORE_H |
2 | #define _LTTNG_TRACER_CORE_H | |
4fbf9cd1 MD |
3 | |
4 | /* | |
5 | * Copyright (C) 2005-2011 Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | |
6 | * | |
7 | * This contains the core definitions for the Linux Trace Toolkit. | |
8 | * | |
9 | * This library is free software; you can redistribute it and/or | |
10 | * modify it under the terms of the GNU Lesser General Public | |
11 | * License as published by the Free Software Foundation; version 2.1 of | |
12 | * the License. | |
13 | * | |
14 | * This library is distributed in the hope that it will be useful, | |
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
17 | * Lesser General Public License for more details. | |
18 | * | |
19 | * You should have received a copy of the GNU Lesser General Public | |
20 | * License along with this library; if not, write to the Free Software | |
21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |
22 | */ | |
23 | ||
b728d87e MD |
24 | #include <stdint.h> |
25 | #include <stddef.h> | |
26 | #include <urcu/arch.h> | |
4fbf9cd1 | 27 | #include <urcu/list.h> |
44c72f10 MD |
28 | #include <lttng/ust-tracer.h> |
29 | #include <lttng/bug.h> | |
4318ae1b | 30 | #include <lttng/ringbuffer-config.h> |
44c72f10 | 31 | #include <usterr-signal-safe.h> |
4fbf9cd1 | 32 | |
735bef47 MJ |
33 | /* |
34 | * The longuest possible namespace proc path is with the cgroup ns | |
35 | * and the maximum theoretical linux pid of 536870912 : | |
36 | * | |
37 | * /proc/self/task/536870912/ns/cgroup | |
38 | */ | |
39 | #define LTTNG_PROC_NS_PATH_MAX 40 | |
40 | ||
7dd08bec MD |
41 | struct lttng_session; |
42 | struct lttng_channel; | |
43 | struct lttng_event; | |
ce7352a2 MD |
44 | struct lttng_ctx_field; |
45 | struct lttng_ust_lib_ring_buffer_ctx; | |
46 | struct lttng_ctx_value; | |
4fbf9cd1 | 47 | |
3327ac33 MD |
48 | int ust_lock(void) __attribute__ ((warn_unused_result)); |
49 | void ust_lock_nocheck(void); | |
17dfb34b | 50 | void ust_unlock(void); |
8165c8da | 51 | |
eddd8d5d | 52 | void lttng_fixup_event_tls(void); |
4158a15a | 53 | void lttng_fixup_vtid_tls(void); |
009745db | 54 | void lttng_fixup_procname_tls(void); |
735bef47 MJ |
55 | void lttng_fixup_cgroup_ns_tls(void); |
56 | void lttng_fixup_ipc_ns_tls(void); | |
57 | void lttng_fixup_net_ns_tls(void); | |
58 | void lttng_fixup_uts_ns_tls(void); | |
eddd8d5d | 59 | |
74d81a6c MD |
60 | const char *lttng_ust_obj_get_name(int id); |
61 | ||
32ce8569 MD |
62 | int lttng_get_notify_socket(void *owner); |
63 | ||
246be17e | 64 | void lttng_ust_sockinfo_session_enabled(void *owner); |
95c25348 | 65 | |
79f3848b MD |
66 | void lttng_ust_malloc_wrapper_init(void); |
67 | ||
405be658 MD |
68 | ssize_t lttng_ust_read(int fd, void *buf, size_t len); |
69 | ||
ce7352a2 MD |
70 | size_t lttng_ust_dummy_get_size(struct lttng_ctx_field *field, size_t offset); |
71 | void lttng_ust_dummy_record(struct lttng_ctx_field *field, | |
72 | struct lttng_ust_lib_ring_buffer_ctx *ctx, | |
73 | struct lttng_channel *chan); | |
74 | void lttng_ust_dummy_get_value(struct lttng_ctx_field *field, | |
75 | struct lttng_ctx_value *value); | |
76 | int lttng_context_is_app(const char *name); | |
c362addf | 77 | void lttng_ust_fixup_tls(void); |
ce7352a2 | 78 | |
20142124 MD |
79 | #ifdef LTTNG_UST_HAVE_PERF_EVENT |
80 | void lttng_ust_fixup_perf_counter_tls(void); | |
81 | void lttng_perf_lock(void); | |
82 | void lttng_perf_unlock(void); | |
83 | #else /* #ifdef LTTNG_UST_HAVE_PERF_EVENT */ | |
84 | static inline | |
85 | void lttng_ust_fixup_perf_counter_tls(void) | |
86 | { | |
87 | } | |
88 | static inline | |
89 | void lttng_perf_lock(void) | |
90 | { | |
91 | } | |
92 | static inline | |
93 | void lttng_perf_unlock(void) | |
94 | { | |
95 | } | |
96 | #endif /* #else #ifdef LTTNG_UST_HAVE_PERF_EVENT */ | |
97 | ||
7dd08bec | 98 | #endif /* _LTTNG_TRACER_CORE_H */ |