.gitignore: ignore local vscode workspace settings file
[lttng-tools.git] / src / common / ust-consumer / ust-consumer.hpp
... / ...
CommitLineData
1/*
2 * Copyright (C) 2011 EfficiOS Inc.
3 * Copyright (C) 2011 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
4 *
5 * SPDX-License-Identifier: GPL-2.0-only
6 *
7 */
8
9#ifndef _LTTNG_USTCONSUMER_H
10#define _LTTNG_USTCONSUMER_H
11
12#include <common/compat/errno.hpp>
13#include <common/consumer/consumer.hpp>
14
15#include <stdbool.h>
16
17#ifdef HAVE_LIBLTTNG_UST_CTL
18
19int lttng_ustconsumer_take_snapshot(struct lttng_consumer_stream *stream);
20int lttng_ustconsumer_sample_snapshot_positions(struct lttng_consumer_stream *stream);
21
22int lttng_ustconsumer_get_produced_snapshot(struct lttng_consumer_stream *stream,
23 unsigned long *pos);
24int lttng_ustconsumer_get_consumed_snapshot(struct lttng_consumer_stream *stream,
25 unsigned long *pos);
26
27int lttng_ustconsumer_recv_cmd(struct lttng_consumer_local_data *ctx,
28 int sock,
29 struct pollfd *consumer_sockpoll);
30
31extern void lttng_ustconsumer_del_channel(struct lttng_consumer_channel *chan);
32extern void lttng_ustconsumer_free_channel(struct lttng_consumer_channel *chan);
33extern int lttng_ustconsumer_add_stream(struct lttng_consumer_stream *stream);
34extern void lttng_ustconsumer_del_stream(struct lttng_consumer_stream *stream);
35
36int lttng_ustconsumer_read_subbuffer(struct lttng_consumer_stream *stream,
37 struct lttng_consumer_local_data *ctx);
38int lttng_ustconsumer_on_recv_stream(struct lttng_consumer_stream *stream);
39
40void lttng_ustconsumer_on_stream_hangup(struct lttng_consumer_stream *stream);
41
42int lttng_ust_flush_buffer(struct lttng_consumer_stream *stream, int producer_active);
43int lttng_ustconsumer_get_stream_id(struct lttng_consumer_stream *stream, uint64_t *stream_id);
44int lttng_ustconsumer_data_pending(struct lttng_consumer_stream *stream);
45void lttng_ustconsumer_close_all_metadata(struct lttng_ht *ht);
46void lttng_ustconsumer_close_metadata(struct lttng_consumer_channel *metadata);
47void lttng_ustconsumer_close_stream_wakeup(struct lttng_consumer_stream *stream);
48int lttng_ustconsumer_recv_metadata(int sock,
49 uint64_t key,
50 uint64_t offset,
51 uint64_t len,
52 uint64_t version,
53 struct lttng_consumer_channel *channel,
54 bool invoked_by_timer,
55 int wait);
56int lttng_ustconsumer_request_metadata(struct lttng_consumer_local_data *ctx,
57 struct lttng_consumer_channel *channel,
58 bool invoked_by_timer,
59 int wait);
60enum sync_metadata_status lttng_ustconsumer_sync_metadata(struct lttng_consumer_local_data *ctx,
61 struct lttng_consumer_stream *metadata);
62int lttng_ustconsumer_flush_buffer(struct lttng_consumer_stream *stream, int producer);
63int lttng_ustconsumer_clear_buffer(struct lttng_consumer_stream *stream);
64int lttng_ustconsumer_get_current_timestamp(struct lttng_consumer_stream *stream, uint64_t *ts);
65int lttng_ustconsumer_get_sequence_number(struct lttng_consumer_stream *stream, uint64_t *seq);
66void lttng_ustconsumer_sigbus_handle(void *addr);
67
68#else /* HAVE_LIBLTTNG_UST_CTL */
69
70static inline ssize_t lttng_ustconsumer_on_read_subbuffer_mmap(
71 struct lttng_consumer_local_data *ctx __attribute__((unused)),
72 struct lttng_consumer_stream *stream __attribute__((unused)),
73 unsigned long len __attribute__((unused)),
74 unsigned long padding __attribute__((unused)))
75{
76 return -ENOSYS;
77}
78
79static inline ssize_t lttng_ustconsumer_on_read_subbuffer_splice(
80 struct lttng_consumer_local_data *ctx __attribute__((unused)),
81 struct lttng_consumer_stream *uststream __attribute__((unused)),
82 unsigned long len __attribute__((unused)),
83 unsigned long padding __attribute__((unused)))
84{
85 return -ENOSYS;
86}
87
88static inline int lttng_ustconsumer_take_snapshot(struct lttng_consumer_stream *stream
89 __attribute__((unused)))
90{
91 return -ENOSYS;
92}
93
94static inline int lttng_ustconsumer_sample_snapshot_positions(struct lttng_consumer_stream *stream
95 __attribute__((unused)))
96{
97 return -ENOSYS;
98}
99
100static inline int lttng_ustconsumer_get_produced_snapshot(struct lttng_consumer_stream *stream
101 __attribute__((unused)),
102 unsigned long *pos
103 __attribute__((unused)))
104{
105 return -ENOSYS;
106}
107
108static inline int lttng_ustconsumer_get_consumed_snapshot(struct lttng_consumer_stream *stream
109 __attribute__((unused)),
110 unsigned long *pos
111 __attribute__((unused)))
112{
113 return -ENOSYS;
114}
115
116static inline int lttng_ustconsumer_recv_cmd(struct lttng_consumer_local_data *ctx
117 __attribute__((unused)),
118 int sock __attribute__((unused)),
119 struct pollfd *consumer_sockpoll
120 __attribute__((unused)))
121{
122 return -ENOSYS;
123}
124
125static inline void lttng_ustconsumer_del_channel(struct lttng_consumer_channel *chan
126 __attribute__((unused)))
127{
128}
129
130static inline void lttng_ustconsumer_free_channel(struct lttng_consumer_channel *chan
131 __attribute__((unused)))
132{
133}
134
135static inline int lttng_ustconsumer_add_stream(struct lttng_consumer_stream *stream
136 __attribute__((unused)))
137{
138 return -ENOSYS;
139}
140
141static inline void lttng_ustconsumer_del_stream(struct lttng_consumer_stream *stream
142 __attribute__((unused)))
143{
144}
145
146static inline int lttng_ustconsumer_read_subbuffer(struct lttng_consumer_stream *stream
147 __attribute__((unused)),
148 struct lttng_consumer_local_data *ctx
149 __attribute__((unused)))
150{
151 return -ENOSYS;
152}
153
154static inline int lttng_ustconsumer_on_recv_stream(struct lttng_consumer_stream *stream
155 __attribute__((unused)))
156{
157 return -ENOSYS;
158}
159
160static inline void lttng_ustconsumer_on_stream_hangup(struct lttng_consumer_stream *stream
161 __attribute__((unused)))
162{
163}
164
165static inline int lttng_ustconsumer_data_pending(struct lttng_consumer_stream *stream
166 __attribute__((unused)))
167{
168 return -ENOSYS;
169}
170
171static inline int lttng_ust_flush_buffer(struct lttng_consumer_stream *stream
172 __attribute__((unused)),
173 int producer_active __attribute__((unused)))
174{
175 return -ENOSYS;
176}
177
178static inline void lttng_ustconsumer_close_all_metadata(struct lttng_ht *ht __attribute__((unused)))
179{
180}
181
182static inline void lttng_ustconsumer_close_metadata(struct lttng_consumer_channel *metadata
183 __attribute__((unused)))
184{
185}
186static inline void lttng_ustconsumer_close_stream_wakeup(struct lttng_consumer_stream *stream
187 __attribute__((unused)))
188{
189}
190
191static inline int lttng_ustconsumer_recv_metadata(int sock __attribute__((unused)),
192 uint64_t key __attribute__((unused)),
193 uint64_t offset __attribute__((unused)),
194 uint64_t len __attribute__((unused)),
195 uint64_t version __attribute__((unused)),
196 struct lttng_consumer_channel *channel
197 __attribute__((unused)),
198 bool invoked_by_timer __attribute__((unused)))
199{
200 return -ENOSYS;
201}
202
203static inline int lttng_ustconsumer_request_metadata(struct lttng_consumer_local_data *ctx
204 __attribute__((unused)),
205 struct lttng_consumer_channel *channel
206 __attribute__((unused)),
207 bool invoked_by_timer __attribute__((unused)),
208 int wait __attribute__((unused)))
209{
210 return -ENOSYS;
211}
212
213static inline enum sync_metadata_status
214lttng_ustconsumer_sync_metadata(struct lttng_consumer_local_data *ctx __attribute__((unused)),
215 struct lttng_consumer_stream *metadata __attribute__((unused)))
216{
217 return SYNC_METADATA_STATUS_ERROR;
218}
219
220static inline int lttng_ustconsumer_flush_buffer(struct lttng_consumer_stream *stream
221 __attribute__((unused)),
222 int producer __attribute__((unused)))
223{
224 return -ENOSYS;
225}
226
227static inline int lttng_ustconsumer_clear_buffer(struct lttng_consumer_stream *stream
228 __attribute__((unused)))
229{
230 return -ENOSYS;
231}
232
233static inline int lttng_ustconsumer_get_current_timestamp(struct lttng_consumer_stream *stream
234 __attribute__((unused)),
235 uint64_t *ts __attribute__((unused)))
236{
237 return -ENOSYS;
238}
239
240static inline int lttng_ustconsumer_get_sequence_number(struct lttng_consumer_stream *stream
241 __attribute__((unused)),
242 uint64_t *seq __attribute__((unused)))
243{
244 return -ENOSYS;
245}
246
247static inline int lttng_ustconsumer_get_stream_id(struct lttng_consumer_stream *stream
248 __attribute__((unused)),
249 uint64_t *stream_id __attribute__((unused)))
250{
251 return -ENOSYS;
252}
253
254static inline void lttng_ustconsumer_sigbus_handle(void *addr __attribute__((unused)))
255{
256}
257#endif /* HAVE_LIBLTTNG_UST_CTL */
258
259#endif /* _LTTNG_USTCONSUMER_H */
This page took 0.026512 seconds and 4 git commands to generate.