X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=liblttng-ust%2Flttng-ring-buffer-metadata-client.h;h=921549faff4c8cc95ff5e3afe2c41aa653cc4c1c;hb=6b0ddc3d2c4774c4a02d1bb3b266d83b5aa8ef0e;hp=7dbdb821095c2554d26ad839a30f4d0fdbbcb52c;hpb=6ca18e666d018ec79d517485a310c542cf735fa9;p=lttng-ust.git diff --git a/liblttng-ust/lttng-ring-buffer-metadata-client.h b/liblttng-ust/lttng-ring-buffer-metadata-client.h index 7dbdb821..921549fa 100644 --- a/liblttng-ust/lttng-ring-buffer-metadata-client.h +++ b/liblttng-ust/lttng-ring-buffer-metadata-client.h @@ -61,6 +61,7 @@ unsigned char record_header_size(const struct lttng_ust_lib_ring_buffer_config * } #include "../libringbuffer/api.h" +#include "lttng-rb-clients.h" static uint64_t client_ring_buffer_clock_read(struct channel *chan) { @@ -153,6 +154,19 @@ static void client_buffer_finalize(struct lttng_ust_lib_ring_buffer *buf, { } +static const +struct lttng_ust_client_lib_ring_buffer_client_cb client_cb = { + .parent = { + .ring_buffer_clock_read = client_ring_buffer_clock_read, + .record_header_size = client_record_header_size, + .subbuffer_header_size = client_packet_header_size, + .buffer_begin = client_buffer_begin, + .buffer_end = client_buffer_end, + .buffer_create = client_buffer_create, + .buffer_finalize = client_buffer_finalize, + }, +}; + static const struct lttng_ust_lib_ring_buffer_config client_config = { .cb.ring_buffer_clock_read = client_ring_buffer_clock_read, .cb.record_header_size = client_record_header_size, @@ -172,9 +186,11 @@ static const struct lttng_ust_lib_ring_buffer_config client_config = { .ipi = RING_BUFFER_NO_IPI_BARRIER, .wakeup = RING_BUFFER_WAKEUP_BY_WRITER, .client_type = LTTNG_CLIENT_TYPE, + + .cb_ptr = &client_cb.parent, }; -const struct lttng_ust_lib_ring_buffer_client_cb *LTTNG_CLIENT_CALLBACKS = &client_config.cb; +const struct lttng_ust_client_lib_ring_buffer_client_cb *LTTNG_CLIENT_CALLBACKS = &client_cb; static struct lttng_channel *_channel_create(const char *name, @@ -183,7 +199,8 @@ struct lttng_channel *_channel_create(const char *name, unsigned int switch_timer_interval, unsigned int read_timer_interval, unsigned char *uuid, - uint32_t chan_id) + uint32_t chan_id, + const int *stream_fds, int nr_stream_fds) { struct lttng_channel chan_priv_init; struct lttng_ust_shm_handle *handle; @@ -194,10 +211,12 @@ struct lttng_channel *_channel_create(const char *name, memcpy(chan_priv_init.uuid, uuid, LTTNG_UST_UUID_LEN); chan_priv_init.id = chan_id; handle = channel_create(&client_config, name, - &priv, __alignof__(*lttng_chan), sizeof(*lttng_chan), + &priv, __alignof__(struct lttng_channel), + sizeof(struct lttng_channel), &chan_priv_init, buf_addr, subbuf_size, num_subbuf, - switch_timer_interval, read_timer_interval); + switch_timer_interval, read_timer_interval, + stream_fds, nr_stream_fds); if (!handle) return NULL; lttng_chan = priv;