New API: lttng_ust_init_thread() for async-signal tracing
[lttng-ust.git] / liblttng-ust-ctl / ustctl.c
index 2838599035a71bafb44a4f13de62d6bfbd9732c5..9acce7a99b9d55fac380fb782c7f70e4e78f8e62 100644 (file)
@@ -30,6 +30,7 @@
 #include "../liblttng-ust/clock.h"
 #include "../liblttng-ust/getenv.h"
 #include "../liblttng-ust/lttng-tracer-core.h"
+#include "../liblttng-ust/lttng-counter-client.h"
 
 #include "../libcounter/shm.h"
 #include "../libcounter/smp.h"
@@ -83,29 +84,6 @@ struct ustctl_daemon_counter {
        struct ustctl_counter_attr *attr;       /* initial attributes */
 };
 
-extern void lttng_ring_buffer_client_overwrite_init(void);
-extern void lttng_ring_buffer_client_overwrite_rt_init(void);
-extern void lttng_ring_buffer_client_discard_init(void);
-extern void lttng_ring_buffer_client_discard_rt_init(void);
-extern void lttng_ring_buffer_metadata_client_init(void);
-extern void lttng_ring_buffer_client_overwrite_exit(void);
-extern void lttng_ring_buffer_client_overwrite_rt_exit(void);
-extern void lttng_ring_buffer_client_discard_exit(void);
-extern void lttng_ring_buffer_client_discard_rt_exit(void);
-extern void lttng_ring_buffer_metadata_client_exit(void);
-
-__attribute__((visibility("hidden")))
-extern void lttng_counter_client_percpu_32_modular_init(void);
-
-__attribute__((visibility("hidden")))
-extern void lttng_counter_client_percpu_32_modular_exit(void);
-
-__attribute__((visibility("hidden")))
-extern void lttng_counter_client_percpu_64_modular_init(void);
-
-__attribute__((visibility("hidden")))
-extern void lttng_counter_client_percpu_64_modular_exit(void);
-
 int ustctl_release_handle(int sock, int handle)
 {
        struct ustcomm_ust_msg lum;
@@ -1353,7 +1331,7 @@ int ustctl_write_metadata_to_channel(
                reserve_len = min_t(size_t,
                                lttng_chan_buf->ops->priv->packet_avail_size(lttng_chan_buf),
                                len - pos);
-               lttng_ust_lib_ring_buffer_ctx_init(&ctx, rb_chan, NULL, reserve_len, sizeof(char));
+               lttng_ust_lib_ring_buffer_ctx_init(&ctx, rb_chan, reserve_len, sizeof(char), NULL);
                /*
                 * We don't care about metadata buffer's records lost
                 * count, because we always retry here. Report error if
@@ -1362,7 +1340,7 @@ int ustctl_write_metadata_to_channel(
                 */
                waitret = wait_cond_interruptible_timeout(
                        ({
-                               ret = lttng_chan_buf->ops->event_reserve(&ctx, 0);
+                               ret = lttng_chan_buf->ops->event_reserve(&ctx);
                                ret != -ENOBUFS || !ret;
                        }),
                        LTTNG_METADATA_TIMEOUT_MSEC);
@@ -1374,7 +1352,7 @@ int ustctl_write_metadata_to_channel(
                                ret = waitret;
                        goto end;
                }
-               lttng_chan_buf->ops->event_write(&ctx, &str[pos], reserve_len);
+               lttng_chan_buf->ops->event_write(&ctx, &str[pos], reserve_len, 1);
                lttng_chan_buf->ops->event_commit(&ctx);
        }
 end:
@@ -1400,15 +1378,15 @@ ssize_t ustctl_write_one_packet_to_channel(
        reserve_len = min_t(ssize_t,
                        lttng_chan_buf->ops->priv->packet_avail_size(lttng_chan_buf),
                        len);
-       lttng_ust_lib_ring_buffer_ctx_init(&ctx, rb_chan, NULL, reserve_len, sizeof(char));
-       ret = lttng_chan_buf->ops->event_reserve(&ctx, 0);
+       lttng_ust_lib_ring_buffer_ctx_init(&ctx, rb_chan, reserve_len, sizeof(char), NULL);
+       ret = lttng_chan_buf->ops->event_reserve(&ctx);
        if (ret != 0) {
                DBG("LTTng: event reservation failed");
                assert(ret < 0);
                reserve_len = ret;
                goto end;
        }
-       lttng_chan_buf->ops->event_write(&ctx, str, reserve_len);
+       lttng_chan_buf->ops->event_write(&ctx, str, reserve_len, 1);
        lttng_chan_buf->ops->event_commit(&ctx);
 
 end:
@@ -2928,24 +2906,14 @@ void ustctl_init(void)
        ust_err_init();
        lttng_ust_getenv_init();        /* Needs ust_err_init() to be completed. */
        lttng_ust_clock_init();
-       lttng_ring_buffer_metadata_client_init();
-       lttng_ring_buffer_client_overwrite_init();
-       lttng_ring_buffer_client_overwrite_rt_init();
-       lttng_ring_buffer_client_discard_init();
-       lttng_ring_buffer_client_discard_rt_init();
-       lttng_counter_client_percpu_32_modular_init();
-       lttng_counter_client_percpu_64_modular_init();
+       lttng_ust_ring_buffer_clients_init();
+       lttng_ust_counter_clients_init();
        lib_ringbuffer_signal_init();
 }
 
 static __attribute__((destructor))
 void ustctl_exit(void)
 {
-       lttng_ring_buffer_client_discard_rt_exit();
-       lttng_ring_buffer_client_discard_exit();
-       lttng_ring_buffer_client_overwrite_rt_exit();
-       lttng_ring_buffer_client_overwrite_exit();
-       lttng_ring_buffer_metadata_client_exit();
-       lttng_counter_client_percpu_32_modular_exit();
-       lttng_counter_client_percpu_64_modular_exit();
+       lttng_ust_counter_clients_exit();
+       lttng_ust_ring_buffer_clients_exit();
 }
This page took 0.024945 seconds and 4 git commands to generate.