Introduce --with-consumer32-bindir and --with-consumer64-bindir
[lttng-tools.git] / lttng-sessiond / main.c
index 988cb57c3910d3421c79d53b28ce61fda8edd6f6..9af001dfd63d3de910d8de5f14a6beca4872f334 100644 (file)
@@ -1921,8 +1921,13 @@ static void list_lttng_channels(int domain, struct ltt_session *session,
                                uchan->attr.switch_timer_interval;
                        channels[i].attr.read_timer_interval =
                                uchan->attr.read_timer_interval;
-                       channels[i].attr.output = uchan->attr.output;
                        channels[i].enabled = uchan->enabled;
+                       switch (uchan->attr.output) {
+                       case LTTNG_UST_MMAP:
+                       default:
+                               channels[i].attr.output = LTTNG_EVENT_MMAP;
+                               break;
+                       }
                        i++;
                }
                break;
@@ -2271,15 +2276,17 @@ static int cmd_disable_event(struct ltt_session *session, int domain,
        case LTTNG_DOMAIN_KERNEL:
        {
                struct ltt_kernel_channel *kchan;
+               struct ltt_kernel_session *ksess;
 
-               kchan = trace_kernel_get_channel_by_name(channel_name,
-                               session->kernel_session);
+               ksess = session->kernel_session;
+
+               kchan = trace_kernel_get_channel_by_name(channel_name, ksess);
                if (kchan == NULL) {
                        ret = LTTCOMM_KERN_CHAN_NOT_FOUND;
                        goto error;
                }
 
-               ret = event_kernel_disable_tracepoint(session->kernel_session, kchan, event_name);
+               ret = event_kernel_disable_tracepoint(ksess, kchan, event_name);
                if (ret != LTTCOMM_OK) {
                        goto error;
                }
@@ -2288,11 +2295,34 @@ static int cmd_disable_event(struct ltt_session *session, int domain,
                break;
        }
        case LTTNG_DOMAIN_UST:
+       {
+               struct ltt_ust_session *usess;
+               struct ltt_ust_channel *uchan;
+
+               usess = session->ust_session;
+
+               uchan = trace_ust_find_channel_by_name(usess->domain_global.channels,
+                               channel_name);
+               if (uchan == NULL) {
+                       ret = LTTCOMM_UST_CHAN_NOT_FOUND;
+                       goto error;
+               }
+
+               ret = ust_app_disable_event(usess, uchan, event_name);
+               if (ret < 0) {
+                       ret = LTTCOMM_UST_DISABLE_FAIL;
+                       goto error;
+               }
+
+               DBG2("Disable UST event %s in channel %s completed", event_name,
+                               channel_name);
+
+               break;
+       }
        case LTTNG_DOMAIN_UST_EXEC_NAME:
        case LTTNG_DOMAIN_UST_PID:
        case LTTNG_DOMAIN_UST_PID_FOLLOW_CHILDREN:
        default:
-               /* TODO: Other UST domains */
                ret = LTTCOMM_NOT_IMPLEMENTED;
                goto error;
        }
@@ -2310,26 +2340,57 @@ static int cmd_disable_event_all(struct ltt_session *session, int domain,
                char *channel_name)
 {
        int ret;
-       struct ltt_kernel_channel *kchan;
 
        switch (domain) {
        case LTTNG_DOMAIN_KERNEL:
-               kchan = trace_kernel_get_channel_by_name(channel_name,
-                               session->kernel_session);
+       {
+               struct ltt_kernel_session *ksess;
+               struct ltt_kernel_channel *kchan;
+
+               ksess = session->kernel_session;
+
+               kchan = trace_kernel_get_channel_by_name(channel_name, ksess);
                if (kchan == NULL) {
                        ret = LTTCOMM_KERN_CHAN_NOT_FOUND;
                        goto error;
                }
 
-               ret = event_kernel_disable_all(session->kernel_session, kchan);
+               ret = event_kernel_disable_all(ksess, kchan);
                if (ret != LTTCOMM_OK) {
                        goto error;
                }
 
                kernel_wait_quiescent(kernel_tracer_fd);
                break;
+       }
+       case LTTNG_DOMAIN_UST:
+       {
+               struct ltt_ust_session *usess;
+               struct ltt_ust_channel *uchan;
+
+               usess = session->ust_session;
+
+               uchan = trace_ust_find_channel_by_name(usess->domain_global.channels,
+                               channel_name);
+               if (uchan == NULL) {
+                       ret = LTTCOMM_UST_CHAN_NOT_FOUND;
+                       goto error;
+               }
+
+               ret = ust_app_disable_event_all(usess, uchan);
+               if (ret < 0) {
+                       ret = LTTCOMM_UST_DISABLE_FAIL;
+                       goto error;
+               }
+
+               DBG2("Disable all UST event in channel %s completed", channel_name);
+
+               break;
+       }
+       case LTTNG_DOMAIN_UST_EXEC_NAME:
+       case LTTNG_DOMAIN_UST_PID:
+       case LTTNG_DOMAIN_UST_PID_FOLLOW_CHILDREN:
        default:
-               /* TODO: Userspace tracing */
                ret = LTTCOMM_NOT_IMPLEMENTED;
                goto error;
        }
@@ -2413,8 +2474,10 @@ static int cmd_enable_event(struct ltt_session *session, int domain,
                        ret = channel_kernel_create(session->kernel_session,
                                        attr, kernel_poll_pipe[1]);
                        if (ret != LTTCOMM_OK) {
+                               free(attr);
                                goto error;
                        }
+                       free(attr);
                }
 
                /* Get the newly created kernel channel pointer */
@@ -2455,6 +2518,7 @@ static int cmd_enable_event(struct ltt_session *session, int domain,
                        /* Use the internal command enable channel */
                        ret = cmd_enable_channel(session, domain, attr);
                        if (ret < 0) {
+                               free(attr);
                                goto error;
                        }
 
This page took 0.026926 seconds and 4 git commands to generate.