Implement libustctl
[lttng-ust.git] / libringbuffer / ring_buffer_frontend.c
index 0b4b89f7306fee1b77bf4e9b44c9ec48e47af643..cf012dfaf2225dfe7a66cf2fb63f4e860c48265d 100644 (file)
@@ -266,7 +266,7 @@ static void lib_ring_buffer_start_switch_timer(struct lib_ring_buffer *buf,
                           struct shm_handle *handle)
 {
        struct channel *chan = shmp(handle, buf->backend.chan);
-       const struct lib_ring_buffer_config *config = &chan->backend.config;
+       //const struct lib_ring_buffer_config *config = &chan->backend.config;
 
        if (!chan->switch_timer_interval || buf->switch_timer_enabled)
                return;
@@ -398,8 +398,6 @@ static void channel_unregister_notifiers(struct channel *chan,
 static void channel_free(struct channel *chan, struct shm_handle *handle,
                int shadow)
 {
-       int ret;
-
        if (!shadow)
                channel_backend_free(&chan->backend, handle);
        /* chan is freed by shm teardown */
@@ -462,7 +460,10 @@ struct shm_handle *channel_create(const struct lib_ring_buffer_config *config,
        shmobj = shm_object_table_append(handle->table, shmsize);
        if (!shmobj)
                goto error_append;
+       /* struct channel is at object 0, offset 0 (hardcoded) */
        set_shmp(handle->chan, zalloc_shm(shmobj, sizeof(struct channel)));
+       assert(handle->chan._ref.index == 0);
+       assert(handle->chan._ref.offset == 0);
        chan = shmp(handle, handle->chan);
        if (!chan)
                goto error_append;
@@ -528,7 +529,9 @@ struct shm_handle *channel_handle_create(int shm_fd, int wait_fd,
                        shm_fd, wait_fd, memory_map_size);
        if (!object)
                goto error_table_object;
-
+       /* struct channel is at object 0, offset 0 (hardcoded) */
+       handle->chan._ref.index = 0;
+       handle->chan._ref.offset = 0;
        return handle;
 
 error_table_object:
@@ -656,8 +659,6 @@ int lib_ring_buffer_open_read(struct lib_ring_buffer *buf,
                              struct shm_handle *handle,
                              int shadow)
 {
-       struct channel *chan = shmp(handle, buf->backend.chan);
-
        if (shadow) {
                if (uatomic_cmpxchg(&buf->active_shadow_readers, 0, 1) != 0)
                        return -EBUSY;
This page took 0.024926 seconds and 4 git commands to generate.