Move enablers syncing after the channel registration
[lttng-ust.git] / liblttng-ust / lttng-ring-buffer-metadata-client.h
index 7dbdb821095c2554d26ad839a30f4d0fdbbcb52c..0d2a1f838e623ab8147221f23ed4e9ad3a487720 100644 (file)
@@ -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,
@@ -194,7 +210,8 @@ 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);
This page took 0.024023 seconds and 4 git commands to generate.