Commit | Line | Data |
---|---|---|
826d496d | 1 | /* |
b7384347 DG |
2 | * lttng.h |
3 | * | |
4 | * Linux Trace Toolkit Control Library Header File | |
5 | * | |
ab5be9fa | 6 | * Copyright (C) 2011 David Goulet <david.goulet@polymtl.ca> |
fac6795d | 7 | * |
ab5be9fa | 8 | * SPDX-License-Identifier: LGPL-2.1-only |
82a3637f | 9 | * |
fac6795d DG |
10 | */ |
11 | ||
73db5be4 DG |
12 | #ifndef LTTNG_H |
13 | #define LTTNG_H | |
fac6795d | 14 | |
03b1319d DG |
15 | /* Error codes that can be returned by API calls */ |
16 | #include <lttng/lttng-error.h> | |
17 | ||
1239a312 | 18 | /* Include every LTTng ABI/API available. */ |
a58c490f | 19 | #include <lttng/action/action.h> |
ad63a966 | 20 | #include <lttng/action/list.h> |
a58c490f | 21 | #include <lttng/action/notify.h> |
27993cc2 | 22 | #include <lttng/action/path.h> |
7f4d5b07 | 23 | #include <lttng/action/rate-policy.h> |
bfb2ec6a | 24 | #include <lttng/action/rotate-session.h> |
757c48a2 | 25 | #include <lttng/action/snapshot-session.h> |
58397d0d | 26 | #include <lttng/action/start-session.h> |
931bdbaa | 27 | #include <lttng/action/stop-session.h> |
260625bb | 28 | #include <lttng/channel.h> |
685ad3fc | 29 | #include <lttng/clear-handle.h> |
347f2c91 | 30 | #include <lttng/clear.h> |
a58c490f | 31 | #include <lttng/condition/buffer-usage.h> |
260625bb JR |
32 | #include <lttng/condition/condition.h> |
33 | #include <lttng/condition/evaluation.h> | |
670a26e4 | 34 | #include <lttng/condition/event-rule-matches.h> |
e8360425 | 35 | #include <lttng/condition/session-consumed-size.h> |
c19092cd | 36 | #include <lttng/condition/session-rotation.h> |
685ad3fc | 37 | #include <lttng/constant.h> |
260625bb JR |
38 | #include <lttng/destruction-handle.h> |
39 | #include <lttng/domain.h> | |
40 | #include <lttng/endpoint.h> | |
b99a0cb3 | 41 | #include <lttng/error-query.h> |
48c47564 | 42 | #include <lttng/event-expr.h> |
d28fcdec | 43 | #include <lttng/event-field-value.h> |
7a3dcaf6 | 44 | #include <lttng/event-rule/event-rule.h> |
138d6838 | 45 | #include <lttng/event-rule/log4j-logging.h> |
b47b01d8 | 46 | #include <lttng/event-rule/jul-logging.h> |
85522de5 | 47 | #include <lttng/event-rule/kernel-kprobe.h> |
4f7da553 | 48 | #include <lttng/event-rule/kernel-syscall.h> |
6530ec7d | 49 | #include <lttng/event-rule/python-logging.h> |
af0818ef | 50 | #include <lttng/event-rule/kernel-tracepoint.h> |
46fd07ac | 51 | #include <lttng/event-rule/kernel-uprobe.h> |
0a23a07d | 52 | #include <lttng/event-rule/user-tracepoint.h> |
347f2c91 | 53 | #include <lttng/event.h> |
260625bb JR |
54 | #include <lttng/handle.h> |
55 | #include <lttng/health.h> | |
685ad3fc | 56 | #include <lttng/kernel-probe.h> |
11a49e7e JR |
57 | #include <lttng/load.h> |
58 | #include <lttng/location.h> | |
85b05318 | 59 | #include <lttng/log-level-rule.h> |
347f2c91 | 60 | #include <lttng/lttng-error.h> |
4bd69c5f | 61 | #include <lttng/lttng-export.h> |
a58c490f JG |
62 | #include <lttng/notification/channel.h> |
63 | #include <lttng/notification/notification.h> | |
259c2674 | 64 | #include <lttng/rotation.h> |
260625bb JR |
65 | #include <lttng/save.h> |
66 | #include <lttng/session-descriptor.h> | |
67 | #include <lttng/session.h> | |
68 | #include <lttng/snapshot.h> | |
2d97a006 | 69 | #include <lttng/tracker.h> |
260625bb | 70 | #include <lttng/trigger/trigger.h> |
11a49e7e | 71 | #include <lttng/userspace-probe.h> |
1239a312 | 72 | |
5168918c DG |
73 | #ifdef __cplusplus |
74 | extern "C" { | |
75 | #endif | |
76 | ||
1239a312 DG |
77 | enum lttng_calibrate_type { |
78 | LTTNG_CALIBRATE_FUNCTION = 0, | |
54c90d10 | 79 | }; |
f3ed775e | 80 | |
c7e35b03 JR |
81 | /* Machine interface output type */ |
82 | enum lttng_mi_output_type { | |
83 | LTTNG_MI_XML = 1 /* XML output */ | |
84 | }; | |
85 | ||
8d326ab9 | 86 | #define LTTNG_CALIBRATE_PADDING1 16 |
d0254c7c MD |
87 | struct lttng_calibrate { |
88 | enum lttng_calibrate_type type; | |
8d326ab9 DG |
89 | |
90 | char padding[LTTNG_CALIBRATE_PADDING1]; | |
54c90d10 | 91 | }; |
d0254c7c | 92 | |
7d29a247 DG |
93 | /* |
94 | * Check if a session daemon is alive. | |
1e46a50f | 95 | * |
06662f07 DG |
96 | * Return 1 if alive or 0 if not. On error, returns a negative negative LTTng |
97 | * error code. | |
7d29a247 | 98 | */ |
4bd69c5f | 99 | LTTNG_EXPORT extern int lttng_session_daemon_alive(void); |
f3ed775e | 100 | |
7d29a247 | 101 | /* |
1e46a50f TD |
102 | * Set the tracing group for the *current* flow of execution. |
103 | * | |
06662f07 | 104 | * On success, returns 0 else a negative LTTng error code. |
7d29a247 | 105 | */ |
4bd69c5f | 106 | LTTNG_EXPORT extern int lttng_set_tracing_group(const char *name); |
f3ed775e | 107 | |
d9800920 | 108 | /* |
1e46a50f TD |
109 | * This call registers an "outside consumer" for a session and an lttng domain. |
110 | * No consumer will be spawned and all fds/commands will go through the socket | |
111 | * path given (socket_path). | |
d9800920 | 112 | * |
06662f07 DG |
113 | * NOTE that this is not recommended unless you absolutely know what you are |
114 | * doing. | |
115 | * | |
116 | * Return 0 on success else a negative LTTng error code. | |
d9800920 | 117 | */ |
4bd69c5f | 118 | LTTNG_EXPORT extern int lttng_register_consumer(struct lttng_handle *handle, |
d9800920 DG |
119 | const char *socket_path); |
120 | ||
7d29a247 | 121 | /* |
06662f07 DG |
122 | * Start tracing for *all* domain(s) in the session. |
123 | * | |
124 | * Return 0 on success else a negative LTTng error code. | |
7d29a247 | 125 | */ |
4bd69c5f | 126 | LTTNG_EXPORT extern int lttng_start_tracing(const char *session_name); |
f3ed775e | 127 | |
7d29a247 | 128 | /* |
06662f07 | 129 | * Stop tracing for *all* domain(s) in the session. |
38ee087f DG |
130 | * |
131 | * This call will wait for data availability for each domain of the session so | |
132 | * this can take an abritrary amount of time. However, when returning you have | |
06662f07 | 133 | * the guarantee that the data is ready to be read and analyze. Use the |
38ee087f | 134 | * _no_wait call below to avoid this behavior. |
41039c06 DG |
135 | * |
136 | * The session_name can't be NULL. | |
06662f07 DG |
137 | * |
138 | * Return 0 on success else a negative LTTng error code. | |
7d29a247 | 139 | */ |
4bd69c5f | 140 | LTTNG_EXPORT extern int lttng_stop_tracing(const char *session_name); |
f3ed775e | 141 | |
38ee087f DG |
142 | /* |
143 | * Behave exactly like lttng_stop_tracing but does not wait for data | |
144 | * availability. | |
145 | */ | |
4bd69c5f | 146 | LTTNG_EXPORT extern int lttng_stop_tracing_no_wait(const char *session_name); |
38ee087f | 147 | |
d0254c7c | 148 | /* |
b812e5ca PP |
149 | * Deprecated: As of LTTng 2.9, this function always returns |
150 | * -LTTNG_ERR_UND. | |
d0254c7c | 151 | */ |
48a40005 SM |
152 | #pragma GCC diagnostic push |
153 | #pragma GCC diagnostic ignored "-Wshadow" | |
4bd69c5f | 154 | LTTNG_EXPORT extern int lttng_calibrate(struct lttng_handle *handle, |
d0254c7c | 155 | struct lttng_calibrate *calibrate); |
48a40005 | 156 | #pragma GCC diagnostic pop |
d0254c7c | 157 | |
00e2e675 | 158 | /* |
a4b92340 DG |
159 | * Set URL for a consumer for a session and domain. |
160 | * | |
161 | * Both data and control URL must be defined. If both URLs are the same, only | |
162 | * the control URL is used even for network streaming. | |
00e2e675 | 163 | * |
a4b92340 DG |
164 | * Default port are 5342 and 5343 respectively for control and data which uses |
165 | * the TCP protocol. | |
06662f07 DG |
166 | * |
167 | * URL format: proto://[HOST|IP][:PORT1[:PORT2]][/TRACE_PATH] | |
168 | * | |
169 | * Possible protocols are: | |
170 | * > file://... | |
171 | * Local filesystem full path. | |
172 | * | |
173 | * > net[6]://... | |
174 | * This will use the default network transport layer which is TCP for both | |
175 | * control (PORT1) and data port (PORT2). | |
176 | * | |
177 | * > tcp[6]://... | |
178 | * TCP only streaming. For this one, both data and control URL must be given. | |
179 | * | |
180 | * Return 0 on success else a negative LTTng error code. | |
00e2e675 | 181 | */ |
4bd69c5f | 182 | LTTNG_EXPORT extern int lttng_set_consumer_url(struct lttng_handle *handle, |
a4b92340 | 183 | const char *control_url, const char *data_url); |
00e2e675 | 184 | |
806e2684 DG |
185 | /* |
186 | * For a given session name, this call checks if the data is ready to be read | |
6d805429 DG |
187 | * or is still being extracted by the consumer(s) (pending) hence not ready to |
188 | * be used by any readers. | |
806e2684 | 189 | * |
6d805429 DG |
190 | * Return 0 if there is _no_ data pending in the buffers thus having a |
191 | * guarantee that the data can be read safely. Else, return 1 if there is still | |
192 | * traced data is pending. On error, a negative value is returned and readable | |
193 | * by lttng_strerror(). | |
806e2684 | 194 | */ |
4bd69c5f | 195 | LTTNG_EXPORT extern int lttng_data_pending(const char *session_name); |
806e2684 | 196 | |
eded6438 JD |
197 | /* |
198 | * Deprecated, replaced by lttng_regenerate_metadata. | |
199 | */ | |
f895927f | 200 | LTTNG_DEPRECATED("Use lttng_regenerate_metadata") |
4bd69c5f | 201 | LTTNG_EXPORT extern int lttng_metadata_regenerate(const char *session_name); |
eded6438 | 202 | |
93ec662e JD |
203 | /* |
204 | * Trigger the regeneration of the metadata for a session. | |
205 | * The new metadata overwrite the previous one locally or remotely (through | |
206 | * the lttng-relayd). Only kernel, per-uid and non-live sessions are supported. | |
207 | * Return 0 on success, a negative LTTng error code on error. | |
208 | */ | |
4bd69c5f | 209 | LTTNG_EXPORT extern int lttng_regenerate_metadata(const char *session_name); |
93ec662e | 210 | |
c2561365 JD |
211 | /* |
212 | * Trigger the regeneration of the statedump for a session. The new statedump | |
213 | * information is appended to the currently active trace, the session needs to | |
214 | * be active. | |
215 | * | |
216 | * Return 0 on success, a negative LTTng error code on error. | |
217 | */ | |
4bd69c5f | 218 | LTTNG_EXPORT extern int lttng_regenerate_statedump(const char *session_name); |
c2561365 | 219 | |
5168918c DG |
220 | #ifdef __cplusplus |
221 | } | |
222 | #endif | |
223 | ||
73db5be4 | 224 | #endif /* LTTNG_H */ |