Commit | Line | Data |
---|---|---|
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 | 19 | int lttng_ustconsumer_take_snapshot(struct lttng_consumer_stream *stream); |
28f23191 | 20 | int lttng_ustconsumer_sample_snapshot_positions(struct lttng_consumer_stream *stream); |
3bd1e081 | 21 | |
28f23191 JG |
22 | int lttng_ustconsumer_get_produced_snapshot(struct lttng_consumer_stream *stream, |
23 | unsigned long *pos); | |
24 | int lttng_ustconsumer_get_consumed_snapshot(struct lttng_consumer_stream *stream, | |
25 | unsigned long *pos); | |
3bd1e081 MD |
26 | |
27 | int lttng_ustconsumer_recv_cmd(struct lttng_consumer_local_data *ctx, | |
28f23191 JG |
28 | int sock, |
29 | struct pollfd *consumer_sockpoll); | |
3bd1e081 | 30 | |
3bd1e081 | 31 | extern void lttng_ustconsumer_del_channel(struct lttng_consumer_channel *chan); |
b83e03c4 | 32 | extern void lttng_ustconsumer_free_channel(struct lttng_consumer_channel *chan); |
e316aad5 | 33 | extern int lttng_ustconsumer_add_stream(struct lttng_consumer_stream *stream); |
3bd1e081 MD |
34 | extern void lttng_ustconsumer_del_stream(struct lttng_consumer_stream *stream); |
35 | ||
d41f73b7 | 36 | int lttng_ustconsumer_read_subbuffer(struct lttng_consumer_stream *stream, |
28f23191 | 37 | struct lttng_consumer_local_data *ctx); |
d41f73b7 MD |
38 | int lttng_ustconsumer_on_recv_stream(struct lttng_consumer_stream *stream); |
39 | ||
d056b477 MD |
40 | void lttng_ustconsumer_on_stream_hangup(struct lttng_consumer_stream *stream); |
41 | ||
28f23191 JG |
42 | int lttng_ust_flush_buffer(struct lttng_consumer_stream *stream, int producer_active); |
43 | int lttng_ustconsumer_get_stream_id(struct lttng_consumer_stream *stream, uint64_t *stream_id); | |
6d805429 | 44 | int lttng_ustconsumer_data_pending(struct lttng_consumer_stream *stream); |
6d574024 DG |
45 | void lttng_ustconsumer_close_all_metadata(struct lttng_ht *ht); |
46 | void lttng_ustconsumer_close_metadata(struct lttng_consumer_channel *metadata); | |
d8ef542d | 47 | void lttng_ustconsumer_close_stream_wakeup(struct lttng_consumer_stream *stream); |
28f23191 JG |
48 | int 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 | int timer, | |
55 | int wait); | |
331744e3 | 56 | int lttng_ustconsumer_request_metadata(struct lttng_consumer_local_data *ctx, |
28f23191 JG |
57 | struct lttng_consumer_channel *channel, |
58 | int timer, | |
59 | int wait); | |
60 | enum sync_metadata_status lttng_ustconsumer_sync_metadata(struct lttng_consumer_local_data *ctx, | |
61 | struct lttng_consumer_stream *metadata); | |
62 | int lttng_ustconsumer_flush_buffer(struct lttng_consumer_stream *stream, int producer); | |
881fc67f | 63 | int lttng_ustconsumer_clear_buffer(struct lttng_consumer_stream *stream); |
28f23191 JG |
64 | int lttng_ustconsumer_get_current_timestamp(struct lttng_consumer_stream *stream, uint64_t *ts); |
65 | int lttng_ustconsumer_get_sequence_number(struct lttng_consumer_stream *stream, uint64_t *seq); | |
881fc67f | 66 | void lttng_ustconsumer_sigbus_handle(void *addr); |
f02e1e8a | 67 | |
74d0b642 | 68 | #else /* HAVE_LIBLTTNG_UST_CTL */ |
3bd1e081 | 69 | |
28f23191 JG |
70 | static 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 |
79 | static 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 |
88 | static inline int lttng_ustconsumer_take_snapshot(struct lttng_consumer_stream *stream |
89 | __attribute__((unused))) | |
3bd1e081 MD |
90 | { |
91 | return -ENOSYS; | |
92 | } | |
93 | ||
28f23191 JG |
94 | static 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 |
100 | static 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 |
108 | static 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 |
116 | static 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 |
125 | static inline void lttng_ustconsumer_del_channel(struct lttng_consumer_channel *chan |
126 | __attribute__((unused))) | |
3bd1e081 MD |
127 | { |
128 | } | |
129 | ||
28f23191 JG |
130 | static inline void lttng_ustconsumer_free_channel(struct lttng_consumer_channel *chan |
131 | __attribute__((unused))) | |
b83e03c4 MD |
132 | { |
133 | } | |
134 | ||
28f23191 JG |
135 | static inline int lttng_ustconsumer_add_stream(struct lttng_consumer_stream *stream |
136 | __attribute__((unused))) | |
3bd1e081 MD |
137 | { |
138 | return -ENOSYS; | |
139 | } | |
140 | ||
28f23191 JG |
141 | static inline void lttng_ustconsumer_del_stream(struct lttng_consumer_stream *stream |
142 | __attribute__((unused))) | |
3bd1e081 MD |
143 | { |
144 | } | |
145 | ||
28f23191 JG |
146 | static 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 |
154 | static 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 |
160 | static inline void lttng_ustconsumer_on_stream_hangup(struct lttng_consumer_stream *stream |
161 | __attribute__((unused))) | |
d056b477 MD |
162 | { |
163 | } | |
164 | ||
28f23191 JG |
165 | static 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 |
171 | static 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 | 178 | static inline void lttng_ustconsumer_close_all_metadata(struct lttng_ht *ht __attribute__((unused))) |
6d574024 DG |
179 | { |
180 | } | |
f46376a1 | 181 | |
28f23191 JG |
182 | static inline void lttng_ustconsumer_close_metadata(struct lttng_consumer_channel *metadata |
183 | __attribute__((unused))) | |
d88aee68 DG |
184 | { |
185 | } | |
28f23191 JG |
186 | static inline void lttng_ustconsumer_close_stream_wakeup(struct lttng_consumer_stream *stream |
187 | __attribute__((unused))) | |
d8ef542d MD |
188 | { |
189 | } | |
f46376a1 | 190 | |
28f23191 JG |
191 | static 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 | int timer __attribute__((unused))) | |
ee69440b DG |
199 | { |
200 | return -ENOSYS; | |
201 | } | |
f46376a1 | 202 | |
28f23191 JG |
203 | static 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 | int timer __attribute__((unused)), | |
208 | int wait __attribute__((unused))) | |
ee69440b DG |
209 | { |
210 | return -ENOSYS; | |
211 | } | |
f46376a1 | 212 | |
28f23191 JG |
213 | static inline enum sync_metadata_status |
214 | lttng_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 |
220 | static 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 |
227 | static 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 |
233 | static 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 |
240 | static 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 |
247 | static 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 | 254 | static 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 */ |