#include <sys/types.h>
#include <limits.h>
+#ifndef LTTNG_PACKED
+#error "LTTNG_PACKED should be defined"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#ifndef LTTNG_UST_UUID_LEN
#define LTTNG_UST_UUID_LEN 16
#endif
enum lttng_ust_output output; /* splice, mmap */
uint32_t chan_id; /* channel ID */
unsigned char uuid[LTTNG_UST_UUID_LEN]; /* Trace session unique ID */
+ int64_t blocking_timeout; /* Blocking timeout (usec) */
} LTTNG_PACKED;
/*
/* snapshot */
int ustctl_snapshot(struct ustctl_consumer_stream *stream);
+int ustctl_snapshot_sample_positions(struct ustctl_consumer_stream *stream);
int ustctl_snapshot_get_consumed(struct ustctl_consumer_stream *stream,
unsigned long *pos);
int ustctl_snapshot_get_produced(struct ustctl_consumer_stream *stream,
void ustctl_flush_buffer(struct ustctl_consumer_stream *stream,
int producer_active);
+void ustctl_clear_buffer(struct ustctl_consumer_stream *stream);
/* index */
+
+/*
+ * Getters which need to be used on the current packet (between get/put
+ * or get_next/put_next.
+ */
+
int ustctl_get_timestamp_begin(struct ustctl_consumer_stream *stream,
uint64_t *timestamp_begin);
int ustctl_get_timestamp_end(struct ustctl_consumer_stream *stream,
uint64_t *content_size);
int ustctl_get_packet_size(struct ustctl_consumer_stream *stream,
uint64_t *packet_size);
-int ustctl_get_stream_id(struct ustctl_consumer_stream *stream,
- uint64_t *stream_id);
-int ustctl_get_current_timestamp(struct ustctl_consumer_stream *stream,
- uint64_t *ts);
int ustctl_get_sequence_number(struct ustctl_consumer_stream *stream,
uint64_t *seq);
+
+/*
+ * Getter returning state invariant for the stream, which can be used
+ * without "get" operation.
+ */
+
+int ustctl_get_stream_id(struct ustctl_consumer_stream *stream,
+ uint64_t *stream_id);
int ustctl_get_instance_id(struct ustctl_consumer_stream *stream,
uint64_t *id);
+/*
+ * Getter returning the current timestamp as perceived from the
+ * tracer.
+ */
+int ustctl_get_current_timestamp(struct ustctl_consumer_stream *stream,
+ uint64_t *ts);
+
/* returns whether UST has perf counters support. */
int ustctl_has_perf_counters(void);
enum ustctl_channel_header header_type,
int ret_code); /* return code. 0 ok, negative error */
+#ifdef __cplusplus
+}
+#endif
+
#endif /* _LTTNG_UST_CTL_H */