static struct packet_header *client_packet_header(struct lttng_ust_lib_ring_buffer *buf,
struct lttng_ust_shm_handle *handle)
{
- struct channel *chan = shmp(handle, buf->backend.chan);
- struct lttng_channel *lttng_chan = channel_get_private(chan);
- unsigned long sb_index;
- struct lttng_ust_lib_ring_buffer_backend *bufb;
- struct packet_header *header;
-
- bufb = &buf->backend;
- sb_index = subbuffer_id_get_index(<tng_chan->chan->backend.config,
- bufb->buf_rsb.id);
- header = lib_ring_buffer_offset_address(bufb,
- sb_index * lttng_chan->chan->backend.subbuf_size,
- handle);
- return header;
+ return lib_ring_buffer_read_offset_address(&buf->backend, 0, handle);
}
static int client_timestamp_begin(struct lttng_ust_lib_ring_buffer *buf,
return 0;
}
+static int client_current_timestamp(struct lttng_ust_lib_ring_buffer *buf,
+ struct lttng_ust_shm_handle *handle,
+ uint64_t *ts)
+{
+ struct channel *chan;
+
+ chan = shmp(handle, handle->chan);
+ *ts = client_ring_buffer_clock_read(chan);
+
+ return 0;
+}
+
static const
struct lttng_ust_client_lib_ring_buffer_client_cb client_cb = {
.parent = {
.content_size = client_content_size,
.packet_size = client_packet_size,
.stream_id = client_stream_id,
+ .current_timestamp = client_current_timestamp,
};
static const struct lttng_ust_lib_ring_buffer_config client_config = {
lib_ring_buffer_write(&client_config, ctx, src, len);
}
+static
+void lttng_event_strcpy(struct lttng_ust_lib_ring_buffer_ctx *ctx, const char *src,
+ size_t len)
+{
+ lib_ring_buffer_strcpy(&client_config, ctx, src, len, '#');
+}
+
#if 0
static
wait_queue_head_t *lttng_get_reader_wait_queue(struct channel *chan)
.ops = {
.channel_create = _channel_create,
.channel_destroy = lttng_channel_destroy,
+ .u.has_strcpy = 1,
.event_reserve = lttng_event_reserve,
.event_commit = lttng_event_commit,
.event_write = lttng_event_write,
.is_finalized = lttng_is_finalized,
.is_disabled = lttng_is_disabled,
.flush_buffer = lttng_flush_buffer,
+ .event_strcpy = lttng_event_strcpy,
},
.client_config = &client_config,
};