Export consumer ABI, implement ring buffer modifications for consumer
[lttng-ust.git] / libust / ltt-ring-buffer-metadata-client.h
index c783b24280191785114515d3ea09fa5fa6b68bea..fa79485c98634d4892ef45c9199a0764add004f6 100644 (file)
@@ -160,12 +160,17 @@ struct ltt_channel *_channel_create(const char *name,
                                struct ltt_channel *ltt_chan, void *buf_addr,
                                size_t subbuf_size, size_t num_subbuf,
                                unsigned int switch_timer_interval,
-                               unsigned int read_timer_interval)
+                               unsigned int read_timer_interval,
+                               int *shm_fd, int *wait_fd,
+                               uint64_t *memory_map_size)
 {
        ltt_chan->handle = channel_create(&client_config, name, ltt_chan, buf_addr,
                              subbuf_size, num_subbuf, switch_timer_interval,
-                             read_timer_interval);
-       ltt_chan->chan = shmp(handle, handle->chan);
+                             read_timer_interval, shm_fd, wait_fd,
+                             memory_map_size);
+       if (!ltt_chan->handle)
+               return NULL;
+       ltt_chan->chan = shmp(ltt_chan->handle, ltt_chan->handle->chan);
        return ltt_chan;
 }
 
@@ -177,11 +182,14 @@ void ltt_channel_destroy(struct ltt_channel *ltt_chan)
 
 static
 struct lib_ring_buffer *ltt_buffer_read_open(struct channel *chan,
-                                            struct shm_handle *handle)
+                                            struct shm_handle *handle,
+                                            int *shm_fd, int *wait_fd,
+                                            uint64_t *memory_map_size)
 {
        struct lib_ring_buffer *buf;
 
-       buf = channel_get_ring_buffer(&client_config, chan, 0, handle);
+       buf = channel_get_ring_buffer(&client_config, chan,
+                       0, handle, shm_fd, wait_fd, memory_map_size);
        if (!lib_ring_buffer_open_read(buf, handle))
                return buf;
        return NULL;
@@ -257,7 +265,7 @@ int ltt_is_disabled(struct channel *chan)
 }
 
 static struct ltt_transport ltt_relay_transport = {
-       .name = "relay-" RING_BUFFER_MODE_TEMPLATE_STRING,
+       .name = "relay-" RING_BUFFER_MODE_TEMPLATE_STRING "-mmap",
        .ops = {
                .channel_create = _channel_create,
                .channel_destroy = ltt_channel_destroy,
@@ -274,15 +282,13 @@ static struct ltt_transport ltt_relay_transport = {
        },
 };
 
-static
-void __attribute__((constructor)) ltt_ring_buffer_client_init(void)
+void RING_BUFFER_MODE_TEMPLATE_INIT(void)
 {
        DBG("LTT : ltt ring buffer client init\n");
        ltt_transport_register(&ltt_relay_transport);
 }
 
-static
-void __attribute__((destructor)) ltt_ring_buffer_client_exit(void)
+void RING_BUFFER_MODE_TEMPLATE_EXIT(void)
 {
        DBG("LTT : ltt ring buffer client exit\n");
        ltt_transport_unregister(&ltt_relay_transport);
This page took 0.02415 seconds and 4 git commands to generate.