Rename shm_handle to lttng_ust_shm_handle
[lttng-ust.git] / libringbuffer / ring_buffer_backend.c
index cac746c246109d792432ad552e51cc77dd916356..adf5978485f12577dd551a1c063256407abb913d 100644 (file)
@@ -29,7 +29,7 @@ int lib_ring_buffer_backend_allocate(const struct lib_ring_buffer_config *config
                                     struct lib_ring_buffer_backend *bufb,
                                     size_t size, size_t num_subbuf,
                                     int extra_reader_sb,
-                                    struct shm_handle *handle,
+                                    struct lttng_ust_shm_handle *handle,
                                     struct shm_object *shmobj)
 {
        struct channel_backend *chanb = &shmp(handle, bufb->chan)->backend;
@@ -62,7 +62,7 @@ int lib_ring_buffer_backend_allocate(const struct lib_ring_buffer_config *config
        /* Allocate backend pages array elements */
        for (i = 0; i < num_subbuf_alloc; i++) {
                align_shm(shmobj, __alignof__(struct lib_ring_buffer_backend_pages));
-               set_shmp(shmp(handle, bufb->array)[i].shmp,
+               set_shmp(shmp_index(handle, bufb->array, i)->shmp,
                        zalloc_shm(shmobj,
                                sizeof(struct lib_ring_buffer_backend_pages)));
                if (!shmp(handle, shmp_index(handle, bufb->array, i)->shmp))
@@ -115,10 +115,10 @@ array_error:
 
 int lib_ring_buffer_backend_create(struct lib_ring_buffer_backend *bufb,
                                   struct channel_backend *chanb, int cpu,
-                                  struct shm_handle *handle,
+                                  struct lttng_ust_shm_handle *handle,
                                   struct shm_object *shmobj)
 {
-       const struct lib_ring_buffer_config *config = chanb->config;
+       const struct lib_ring_buffer_config *config = &chanb->config;
 
        set_shmp(bufb->chan, handle->chan._ref);
        bufb->cpu = cpu;
@@ -138,10 +138,10 @@ void lib_ring_buffer_backend_free(struct lib_ring_buffer_backend *bufb)
 }
 
 void lib_ring_buffer_backend_reset(struct lib_ring_buffer_backend *bufb,
-                                  struct shm_handle *handle)
+                                  struct lttng_ust_shm_handle *handle)
 {
        struct channel_backend *chanb = &shmp(handle, bufb->chan)->backend;
-       const struct lib_ring_buffer_config *config = chanb->config;
+       const struct lib_ring_buffer_config *config = &chanb->config;
        unsigned long num_subbuf_alloc;
        unsigned int i;
 
@@ -175,7 +175,7 @@ void lib_ring_buffer_backend_reset(struct lib_ring_buffer_backend *bufb,
 void channel_backend_reset(struct channel_backend *chanb)
 {
        struct channel *chan = caa_container_of(chanb, struct channel, backend);
-       const struct lib_ring_buffer_config *config = chanb->config;
+       const struct lib_ring_buffer_config *config = &chanb->config;
 
        /*
         * Don't reset buf_size, subbuf_size, subbuf_size_order,
@@ -194,7 +194,7 @@ void channel_backend_reset(struct channel_backend *chanb)
  * @parent: dentry of parent directory, %NULL for root directory
  * @subbuf_size: size of sub-buffers (> PAGE_SIZE, power of 2)
  * @num_subbuf: number of sub-buffers (power of 2)
- * @shm_handle: shared memory handle
+ * @lttng_ust_shm_handle: shared memory handle
  *
  * Returns channel pointer if successful, %NULL otherwise.
  *
@@ -208,12 +208,12 @@ int channel_backend_init(struct channel_backend *chanb,
                         const char *name,
                         const struct lib_ring_buffer_config *config,
                         void *priv, size_t subbuf_size, size_t num_subbuf,
-                        struct shm_handle *handle)
+                        struct lttng_ust_shm_handle *handle)
 {
        struct channel *chan = caa_container_of(chanb, struct channel, backend);
        unsigned int i;
        int ret;
-       size_t shmsize = 0, bufshmsize = 0, num_subbuf_alloc;
+       size_t shmsize = 0, num_subbuf_alloc;
 
        if (!name)
                return -EPERM;
@@ -246,7 +246,7 @@ int channel_backend_init(struct channel_backend *chanb,
        chanb->num_subbuf = num_subbuf;
        strncpy(chanb->name, name, NAME_MAX);
        chanb->name[NAME_MAX - 1] = '\0';
-       chanb->config = config;
+       memcpy(&chanb->config, config, sizeof(*config));
 
        /* Per-cpu buffer size: control (prior to backend) */
        shmsize = offset_align(shmsize, __alignof__(struct lib_ring_buffer));
@@ -257,11 +257,11 @@ int channel_backend_init(struct channel_backend *chanb,
        num_subbuf_alloc = num_subbuf + 1;
        shmsize += offset_align(shmsize, __alignof__(struct lib_ring_buffer_backend_pages_shmp));
        shmsize += sizeof(struct lib_ring_buffer_backend_pages_shmp) * num_subbuf_alloc;
-       shmsize += offset_align(bufshmsize, PAGE_SIZE);
+       shmsize += offset_align(shmsize, PAGE_SIZE);
        shmsize += subbuf_size * num_subbuf_alloc;
-       shmsize += offset_align(bufshmsize, __alignof__(struct lib_ring_buffer_backend_pages));
+       shmsize += offset_align(shmsize, __alignof__(struct lib_ring_buffer_backend_pages));
        shmsize += sizeof(struct lib_ring_buffer_backend_pages) * num_subbuf_alloc;
-       shmsize += offset_align(bufshmsize, __alignof__(struct lib_ring_buffer_backend_subbuffer));
+       shmsize += offset_align(shmsize, __alignof__(struct lib_ring_buffer_backend_subbuffer));
        shmsize += sizeof(struct lib_ring_buffer_backend_subbuffer) * num_subbuf;
        /* Per-cpu buffer size: control (after backend) */
        shmsize += offset_align(shmsize, __alignof__(struct commit_counters_hot));
@@ -334,9 +334,9 @@ end:
  * Destroy all channel buffers and frees the channel.
  */
 void channel_backend_free(struct channel_backend *chanb,
-                         struct shm_handle *handle)
+                         struct lttng_ust_shm_handle *handle)
 {
-       const struct lib_ring_buffer_config *config = chanb->config;
+       const struct lib_ring_buffer_config *config = &chanb->config;
        unsigned int i;
 
        if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) {
@@ -367,10 +367,10 @@ void channel_backend_free(struct channel_backend *chanb,
  * Returns the length copied.
  */
 size_t lib_ring_buffer_read(struct lib_ring_buffer_backend *bufb, size_t offset,
-                           void *dest, size_t len, struct shm_handle *handle)
+                           void *dest, size_t len, struct lttng_ust_shm_handle *handle)
 {
        struct channel_backend *chanb = &shmp(handle, bufb->chan)->backend;
-       const struct lib_ring_buffer_config *config = chanb->config;
+       const struct lib_ring_buffer_config *config = &chanb->config;
        ssize_t orig_len;
        struct lib_ring_buffer_backend_pages_shmp *rpages;
        unsigned long sb_bindex, id;
@@ -390,7 +390,7 @@ size_t lib_ring_buffer_read(struct lib_ring_buffer_backend *bufb, size_t offset,
        CHAN_WARN_ON(chanb, offset >= chanb->buf_size);
        CHAN_WARN_ON(chanb, config->mode == RING_BUFFER_OVERWRITE
                     && subbuffer_id_is_noref(config, id));
-       memcpy(dest, shmp_index(handle, shmp(handle, rpages->shmp)->p, offset & ~(chanb->subbuf_size - 1)), len);
+       memcpy(dest, shmp_index(handle, shmp(handle, rpages->shmp)->p, offset & (chanb->subbuf_size - 1)), len);
        return orig_len;
 }
 
@@ -405,10 +405,10 @@ size_t lib_ring_buffer_read(struct lib_ring_buffer_backend *bufb, size_t offset,
  * Should be protected by get_subbuf/put_subbuf.
  */
 int lib_ring_buffer_read_cstr(struct lib_ring_buffer_backend *bufb, size_t offset,
-                             void *dest, size_t len, struct shm_handle *handle)
+                             void *dest, size_t len, struct lttng_ust_shm_handle *handle)
 {
        struct channel_backend *chanb = &shmp(handle, bufb->chan)->backend;
-       const struct lib_ring_buffer_config *config = chanb->config;
+       const struct lib_ring_buffer_config *config = &chanb->config;
        ssize_t string_len, orig_offset;
        char *str;
        struct lib_ring_buffer_backend_pages_shmp *rpages;
@@ -426,7 +426,7 @@ int lib_ring_buffer_read_cstr(struct lib_ring_buffer_backend *bufb, size_t offse
        CHAN_WARN_ON(chanb, offset >= chanb->buf_size);
        CHAN_WARN_ON(chanb, config->mode == RING_BUFFER_OVERWRITE
                     && subbuffer_id_is_noref(config, id));
-       str = shmp_index(handle, shmp(handle, rpages->shmp)->p, offset & ~(chanb->subbuf_size - 1));
+       str = shmp_index(handle, shmp(handle, rpages->shmp)->p, offset & (chanb->subbuf_size - 1));
        string_len = strnlen(str, len);
        if (dest && len) {
                memcpy(dest, str, string_len);
@@ -447,11 +447,11 @@ int lib_ring_buffer_read_cstr(struct lib_ring_buffer_backend *bufb, size_t offse
  */
 void *lib_ring_buffer_read_offset_address(struct lib_ring_buffer_backend *bufb,
                                          size_t offset,
-                                         struct shm_handle *handle)
+                                         struct lttng_ust_shm_handle *handle)
 {
        struct lib_ring_buffer_backend_pages_shmp *rpages;
        struct channel_backend *chanb = &shmp(handle, bufb->chan)->backend;
-       const struct lib_ring_buffer_config *config = chanb->config;
+       const struct lib_ring_buffer_config *config = &chanb->config;
        unsigned long sb_bindex, id;
 
        offset &= chanb->buf_size - 1;
@@ -460,7 +460,7 @@ void *lib_ring_buffer_read_offset_address(struct lib_ring_buffer_backend *bufb,
        rpages = shmp_index(handle, bufb->array, sb_bindex);
        CHAN_WARN_ON(chanb, config->mode == RING_BUFFER_OVERWRITE
                     && subbuffer_id_is_noref(config, id));
-       return shmp_index(handle, shmp(handle, rpages->shmp)->p, offset & ~(chanb->subbuf_size - 1));
+       return shmp_index(handle, shmp(handle, rpages->shmp)->p, offset & (chanb->subbuf_size - 1));
 }
 
 /**
@@ -475,12 +475,12 @@ void *lib_ring_buffer_read_offset_address(struct lib_ring_buffer_backend *bufb,
  */
 void *lib_ring_buffer_offset_address(struct lib_ring_buffer_backend *bufb,
                                     size_t offset,
-                                    struct shm_handle *handle)
+                                    struct lttng_ust_shm_handle *handle)
 {
        size_t sbidx;
        struct lib_ring_buffer_backend_pages_shmp *rpages;
        struct channel_backend *chanb = &shmp(handle, bufb->chan)->backend;
-       const struct lib_ring_buffer_config *config = chanb->config;
+       const struct lib_ring_buffer_config *config = &chanb->config;
        unsigned long sb_bindex, id;
 
        offset &= chanb->buf_size - 1;
@@ -490,5 +490,5 @@ void *lib_ring_buffer_offset_address(struct lib_ring_buffer_backend *bufb,
        rpages = shmp_index(handle, bufb->array, sb_bindex);
        CHAN_WARN_ON(chanb, config->mode == RING_BUFFER_OVERWRITE
                     && subbuffer_id_is_noref(config, id));
-       return shmp_index(handle, shmp(handle, rpages->shmp)->p, offset & ~(chanb->subbuf_size - 1));
+       return shmp_index(handle, shmp(handle, rpages->shmp)->p, offset & (chanb->subbuf_size - 1));
 }
This page took 0.030988 seconds and 4 git commands to generate.