fix: relayd: unaligned access in trace_chunk_registry_ht_key_hash
[lttng-tools.git] / src / common / ust-consumer / ust-consumer.hpp
CommitLineData
3bd1e081 1/*
21cf9b6b 2 * Copyright (C) 2011 EfficiOS Inc.
ab5be9fa 3 * Copyright (C) 2011 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
3bd1e081 4 *
ab5be9fa 5 * SPDX-License-Identifier: GPL-2.0-only
3bd1e081 6 *
3bd1e081
MD
7 */
8
9#ifndef _LTTNG_USTCONSUMER_H
10#define _LTTNG_USTCONSUMER_H
11
c9e313bc
SM
12#include <common/compat/errno.hpp>
13#include <common/consumer/consumer.hpp>
28f23191 14
02d02e31 15#include <stdbool.h>
10a8a223 16
74d0b642 17#ifdef HAVE_LIBLTTNG_UST_CTL
3bd1e081 18
ffe60014 19int lttng_ustconsumer_take_snapshot(struct lttng_consumer_stream *stream);
28f23191 20int lttng_ustconsumer_sample_snapshot_positions(struct lttng_consumer_stream *stream);
3bd1e081 21
28f23191
JG
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);
3bd1e081
MD
26
27int lttng_ustconsumer_recv_cmd(struct lttng_consumer_local_data *ctx,
28f23191
JG
28 int sock,
29 struct pollfd *consumer_sockpoll);
3bd1e081 30
3bd1e081 31extern void lttng_ustconsumer_del_channel(struct lttng_consumer_channel *chan);
b83e03c4 32extern void lttng_ustconsumer_free_channel(struct lttng_consumer_channel *chan);
e316aad5 33extern int lttng_ustconsumer_add_stream(struct lttng_consumer_stream *stream);
3bd1e081
MD
34extern void lttng_ustconsumer_del_stream(struct lttng_consumer_stream *stream);
35
d41f73b7 36int lttng_ustconsumer_read_subbuffer(struct lttng_consumer_stream *stream,
28f23191 37 struct lttng_consumer_local_data *ctx);
d41f73b7
MD
38int lttng_ustconsumer_on_recv_stream(struct lttng_consumer_stream *stream);
39
d056b477
MD
40void lttng_ustconsumer_on_stream_hangup(struct lttng_consumer_stream *stream);
41
28f23191
JG
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);
6d805429 44int lttng_ustconsumer_data_pending(struct lttng_consumer_stream *stream);
6d574024
DG
45void lttng_ustconsumer_close_all_metadata(struct lttng_ht *ht);
46void lttng_ustconsumer_close_metadata(struct lttng_consumer_channel *metadata);
d8ef542d 47void lttng_ustconsumer_close_stream_wakeup(struct lttng_consumer_stream *stream);
28f23191
JG
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,
f40b76ae 54 bool invoked_by_timer,
28f23191 55 int wait);
331744e3 56int lttng_ustconsumer_request_metadata(struct lttng_consumer_local_data *ctx,
28f23191 57 struct lttng_consumer_channel *channel,
f40b76ae 58 bool invoked_by_timer,
28f23191
JG
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);
881fc67f 63int lttng_ustconsumer_clear_buffer(struct lttng_consumer_stream *stream);
28f23191
JG
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);
881fc67f 66void lttng_ustconsumer_sigbus_handle(void *addr);
f02e1e8a 67
74d0b642 68#else /* HAVE_LIBLTTNG_UST_CTL */
3bd1e081 69
28f23191
JG
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)))
3bd1e081
MD
75{
76 return -ENOSYS;
77}
78
28f23191
JG
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)))
3bd1e081
MD
84{
85 return -ENOSYS;
86}
87
28f23191
JG
88static inline int lttng_ustconsumer_take_snapshot(struct lttng_consumer_stream *stream
89 __attribute__((unused)))
3bd1e081
MD
90{
91 return -ENOSYS;
92}
93
28f23191
JG
94static inline int lttng_ustconsumer_sample_snapshot_positions(struct lttng_consumer_stream *stream
95 __attribute__((unused)))
e9404c27
JG
96{
97 return -ENOSYS;
98}
99
28f23191
JG
100static inline int lttng_ustconsumer_get_produced_snapshot(struct lttng_consumer_stream *stream
101 __attribute__((unused)),
102 unsigned long *pos
103 __attribute__((unused)))
3bd1e081
MD
104{
105 return -ENOSYS;
106}
107
28f23191
JG
108static inline int lttng_ustconsumer_get_consumed_snapshot(struct lttng_consumer_stream *stream
109 __attribute__((unused)),
110 unsigned long *pos
111 __attribute__((unused)))
e9404c27
JG
112{
113 return -ENOSYS;
114}
115
28f23191
JG
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)))
fbc72522
DG
121{
122 return -ENOSYS;
123}
3bd1e081 124
28f23191
JG
125static inline void lttng_ustconsumer_del_channel(struct lttng_consumer_channel *chan
126 __attribute__((unused)))
3bd1e081
MD
127{
128}
129
28f23191
JG
130static inline void lttng_ustconsumer_free_channel(struct lttng_consumer_channel *chan
131 __attribute__((unused)))
b83e03c4
MD
132{
133}
134
28f23191
JG
135static inline int lttng_ustconsumer_add_stream(struct lttng_consumer_stream *stream
136 __attribute__((unused)))
3bd1e081
MD
137{
138 return -ENOSYS;
139}
140
28f23191
JG
141static inline void lttng_ustconsumer_del_stream(struct lttng_consumer_stream *stream
142 __attribute__((unused)))
3bd1e081
MD
143{
144}
145
28f23191
JG
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)))
d41f73b7
MD
150{
151 return -ENOSYS;
152}
153
28f23191
JG
154static inline int lttng_ustconsumer_on_recv_stream(struct lttng_consumer_stream *stream
155 __attribute__((unused)))
d41f73b7
MD
156{
157 return -ENOSYS;
158}
159
28f23191
JG
160static inline void lttng_ustconsumer_on_stream_hangup(struct lttng_consumer_stream *stream
161 __attribute__((unused)))
d056b477
MD
162{
163}
164
28f23191
JG
165static inline int lttng_ustconsumer_data_pending(struct lttng_consumer_stream *stream
166 __attribute__((unused)))
ca22feea
DG
167{
168 return -ENOSYS;
169}
f46376a1 170
28f23191
JG
171static inline int lttng_ust_flush_buffer(struct lttng_consumer_stream *stream
172 __attribute__((unused)),
173 int producer_active __attribute__((unused)))
fc6d7a51 174{
881fc67f 175 return -ENOSYS;
fc6d7a51 176}
f46376a1 177
28f23191 178static inline void lttng_ustconsumer_close_all_metadata(struct lttng_ht *ht __attribute__((unused)))
6d574024
DG
179{
180}
f46376a1 181
28f23191
JG
182static inline void lttng_ustconsumer_close_metadata(struct lttng_consumer_channel *metadata
183 __attribute__((unused)))
d88aee68
DG
184{
185}
28f23191
JG
186static inline void lttng_ustconsumer_close_stream_wakeup(struct lttng_consumer_stream *stream
187 __attribute__((unused)))
d8ef542d
MD
188{
189}
f46376a1 190
28f23191
JG
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)),
f40b76ae 198 bool invoked_by_timer __attribute__((unused)))
ee69440b
DG
199{
200 return -ENOSYS;
201}
f46376a1 202
28f23191
JG
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)),
f40b76ae 207 bool invoked_by_timer __attribute__((unused)),
28f23191 208 int wait __attribute__((unused)))
ee69440b
DG
209{
210 return -ENOSYS;
211}
f46376a1 212
28f23191
JG
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)))
94d49140 216{
577eea73 217 return SYNC_METADATA_STATUS_ERROR;
94d49140 218}
f46376a1 219
28f23191
JG
220static inline int lttng_ustconsumer_flush_buffer(struct lttng_consumer_stream *stream
221 __attribute__((unused)),
222 int producer __attribute__((unused)))
84a182ce 223{
881fc67f 224 return -ENOSYS;
84a182ce 225}
f46376a1 226
28f23191
JG
227static inline int lttng_ustconsumer_clear_buffer(struct lttng_consumer_stream *stream
228 __attribute__((unused)))
214f70e0 229{
881fc67f 230 return -ENOSYS;
214f70e0 231}
f46376a1 232
28f23191
JG
233static inline int lttng_ustconsumer_get_current_timestamp(struct lttng_consumer_stream *stream
234 __attribute__((unused)),
235 uint64_t *ts __attribute__((unused)))
84a182ce
DG
236{
237 return -ENOSYS;
238}
f46376a1 239
28f23191
JG
240static inline int lttng_ustconsumer_get_sequence_number(struct lttng_consumer_stream *stream
241 __attribute__((unused)),
242 uint64_t *seq __attribute__((unused)))
fb83fe64
JD
243{
244 return -ENOSYS;
245}
f46376a1 246
28f23191
JG
247static inline int lttng_ustconsumer_get_stream_id(struct lttng_consumer_stream *stream
248 __attribute__((unused)),
249 uint64_t *stream_id __attribute__((unused)))
70190e1c
DG
250{
251 return -ENOSYS;
252}
f46376a1 253
28f23191 254static inline void lttng_ustconsumer_sigbus_handle(void *addr __attribute__((unused)))
881fc67f
MD
255{
256}
74d0b642 257#endif /* HAVE_LIBLTTNG_UST_CTL */
3bd1e081
MD
258
259#endif /* _LTTNG_USTCONSUMER_H */
This page took 0.105656 seconds and 4 git commands to generate.