Rename data_available to data_pending
[lttng-tools.git] / src / common / ust-consumer / ust-consumer.h
CommitLineData
3bd1e081
MD
1/*
2 * Copyright (C) 2011 - Julien Desfossez <julien.desfossez@polymtl.ca>
3 * Copyright (C) 2011 - Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
4 *
d14d33bf
AM
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License, version 2 only,
7 * as published by the Free Software Foundation.
3bd1e081
MD
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
d14d33bf 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3bd1e081
MD
12 * GNU General Public License for more details.
13 *
d14d33bf
AM
14 * You should have received a copy of the GNU General Public License along
15 * with this program; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
3bd1e081
MD
17 */
18
19#ifndef _LTTNG_USTCONSUMER_H
20#define _LTTNG_USTCONSUMER_H
21
22#include <config.h>
3bd1e081
MD
23#include <errno.h>
24
10a8a223
DG
25#include <common/consumer.h>
26
74d0b642 27#ifdef HAVE_LIBLTTNG_UST_CTL
3bd1e081 28
3bd1e081
MD
29/*
30 * Take a snapshot for a specific fd
31 *
32 * Returns 0 on success, < 0 on error
33 */
34int lttng_ustconsumer_take_snapshot(struct lttng_consumer_local_data *ctx,
35 struct lttng_consumer_stream *stream);
36
37/*
38 * Get the produced position
39 *
40 * Returns 0 on success, < 0 on error
41 */
42int lttng_ustconsumer_get_produced_snapshot(
43 struct lttng_consumer_local_data *ctx,
44 struct lttng_consumer_stream *stream,
45 unsigned long *pos);
46
47int lttng_ustconsumer_recv_cmd(struct lttng_consumer_local_data *ctx,
48 int sock, struct pollfd *consumer_sockpoll);
49
50extern int lttng_ustconsumer_allocate_channel(struct lttng_consumer_channel *chan);
51extern void lttng_ustconsumer_del_channel(struct lttng_consumer_channel *chan);
e316aad5 52extern int lttng_ustconsumer_add_stream(struct lttng_consumer_stream *stream);
3bd1e081
MD
53extern void lttng_ustconsumer_del_stream(struct lttng_consumer_stream *stream);
54
d41f73b7
MD
55int lttng_ustconsumer_read_subbuffer(struct lttng_consumer_stream *stream,
56 struct lttng_consumer_local_data *ctx);
57int lttng_ustconsumer_on_recv_stream(struct lttng_consumer_stream *stream);
58
d056b477
MD
59void lttng_ustconsumer_on_stream_hangup(struct lttng_consumer_stream *stream);
60
f02e1e8a
DG
61extern int lttng_ustctl_get_mmap_read_offset(
62 struct lttng_ust_shm_handle *handle,
63 struct lttng_ust_lib_ring_buffer *buf, unsigned long *off);
6d805429 64int lttng_ustconsumer_data_pending(struct lttng_consumer_stream *stream);
f02e1e8a 65
74d0b642 66#else /* HAVE_LIBLTTNG_UST_CTL */
3bd1e081
MD
67
68static inline
4078b776 69ssize_t lttng_ustconsumer_on_read_subbuffer_mmap(
3bd1e081 70 struct lttng_consumer_local_data *ctx,
1d4dfdef
DG
71 struct lttng_consumer_stream *stream, unsigned long len,
72 unsigned long padding)
3bd1e081
MD
73{
74 return -ENOSYS;
75}
76
77static inline
4078b776 78ssize_t lttng_ustconsumer_on_read_subbuffer_splice(
3bd1e081 79 struct lttng_consumer_local_data *ctx,
1d4dfdef
DG
80 struct lttng_consumer_stream *uststream, unsigned long len,
81 unsigned long padding)
3bd1e081
MD
82{
83 return -ENOSYS;
84}
85
86static inline
87int lttng_ustconsumer_take_snapshot(struct lttng_consumer_local_data *ctx,
88 struct lttng_consumer_stream *stream)
89{
90 return -ENOSYS;
91}
92
93static inline
94int lttng_ustconsumer_get_produced_snapshot(
95 struct lttng_consumer_local_data *ctx,
96 struct lttng_consumer_stream *stream,
97 unsigned long *pos)
98{
99 return -ENOSYS;
100}
101
102static inline
103int lttng_ustconsumer_recv_cmd(struct lttng_consumer_local_data *ctx,
fbc72522
DG
104 int sock, struct pollfd *consumer_sockpoll)
105{
106 return -ENOSYS;
107}
3bd1e081
MD
108
109static inline
110int lttng_ustconsumer_allocate_channel(struct lttng_consumer_channel *chan)
111{
112 return -ENOSYS;
113}
114
115static inline
116void lttng_ustconsumer_del_channel(struct lttng_consumer_channel *chan)
117{
118}
119
120static inline
e316aad5 121int lttng_ustconsumer_add_stream(struct lttng_consumer_stream *stream)
3bd1e081
MD
122{
123 return -ENOSYS;
124}
125
126static inline
127void lttng_ustconsumer_del_stream(struct lttng_consumer_stream *stream)
128{
129}
130
d41f73b7
MD
131static inline
132int lttng_ustconsumer_read_subbuffer(struct lttng_consumer_stream *stream,
133 struct lttng_consumer_local_data *ctx)
134{
135 return -ENOSYS;
136}
137
138static inline
139int lttng_ustconsumer_on_recv_stream(struct lttng_consumer_stream *stream)
140{
141 return -ENOSYS;
142}
143
d056b477
MD
144static inline
145void lttng_ustconsumer_on_stream_hangup(struct lttng_consumer_stream *stream)
146{
147}
148
f02e1e8a
DG
149static inline
150int lttng_ustctl_get_mmap_read_offset(struct lttng_ust_shm_handle *handle,
151 struct lttng_ust_lib_ring_buffer *buf, unsigned long *off)
152{
153 return -ENOSYS;
154}
ca22feea 155static inline
6d805429 156int lttng_ustconsumer_data_pending(struct lttng_consumer_stream *stream)
ca22feea
DG
157{
158 return -ENOSYS;
159}
74d0b642 160#endif /* HAVE_LIBLTTNG_UST_CTL */
3bd1e081
MD
161
162#endif /* _LTTNG_USTCONSUMER_H */
This page took 0.068344 seconds and 4 git commands to generate.