Fix enable all syscalls
[lttng-tools.git] / ltt-sessiond / event.c
index 3e3ecd32049c07b10e9979d967e1e12034676dbc..66e134e4641be8690f9fffbbb10086a96d229bdc 100644 (file)
 #include "event.h"
 #include "kernel-ctl.h"
 
+/*
+ * Setup a lttng_event used to enable *all* syscall tracing.
+ */
+static void init_syscalls_kernel_event(struct lttng_event *event)
+{
+       event->name[0] = '\0';
+       /*
+        * We use LTTNG_EVENT* here since the trace kernel creation will make the
+        * right changes for the kernel.
+        */
+       event->type = LTTNG_EVENT_SYSCALL;
+}
+
 /*
  * Disable kernel event for a channel from the kernel session.
  */
@@ -153,3 +166,27 @@ int event_kernel_enable_all(struct ltt_kernel_session *ksession,
 error:
        return ret;
 }
+
+/*
+ * Enable all kernel syscalls tracing.
+ */
+int event_kernel_enable_syscalls(struct ltt_kernel_session *ksession,
+               struct ltt_kernel_channel *kchan, int kernel_tracer_fd)
+{
+       int ret;
+       struct lttng_event event;
+
+       init_syscalls_kernel_event(&event);
+
+       DBG("Enabling all syscall tracing");
+
+       ret = kernel_create_event(&event, kchan);
+       if (ret < 0) {
+               goto error;
+       }
+
+       ret = LTTCOMM_OK;
+
+error:
+       return ret;
+}
This page took 0.023238 seconds and 4 git commands to generate.