const struct lib_ring_buffer_config *config,
struct lib_ring_buffer *buf)
{
- struct lib_ring_buffer_backend *bufb;
- unsigned long sb_bindex;
- struct packet_header *header;
-
- bufb = &buf->backend;
- sb_bindex = subbuffer_id_get_index(config, bufb->buf_rsb.id);
- header = (struct packet_header *)
- lib_ring_buffer_offset_address(bufb,
- sb_bindex * bufb->chan->backend.subbuf_size);
-
- return header;
+ return lib_ring_buffer_read_offset_address(&buf->backend, 0);
}
static int client_timestamp_begin(const struct lib_ring_buffer_config *config,
return 0;
}
+static int client_current_timestamp(const struct lib_ring_buffer_config *config,
+ struct lib_ring_buffer *bufb,
+ uint64_t *ts)
+{
+ *ts = config->cb.ring_buffer_clock_read(bufb->backend.chan);
+
+ return 0;
+}
+
static const struct lib_ring_buffer_config client_config = {
.cb.ring_buffer_clock_read = client_ring_buffer_clock_read,
.cb.record_header_size = client_record_header_size,
lttng_chan->ops->content_size = client_content_size;
lttng_chan->ops->packet_size = client_packet_size;
lttng_chan->ops->stream_id = client_stream_id;
+ lttng_chan->ops->current_timestamp = client_current_timestamp;
return channel_create(&client_config, name, lttng_chan, buf_addr,
subbuf_size, num_subbuf, switch_timer_interval,