Implement syscall mask ioctl
[lttng-tools.git] / src / common / kernel-ctl / kernel-ctl.c
index d153a1cff7dafbbc3460f7aac1baae55042263fd..078d8528057efa6afa2d3484a1bb25ec28b9a327 100644 (file)
@@ -139,6 +139,30 @@ int kernctl_create_channel(int fd, struct lttng_channel_attr *chops)
        return ioctl(fd, LTTNG_KERNEL_CHANNEL, &channel);
 }
 
+int kernctl_enable_syscall(int fd, const char *syscall_name)
+{
+       struct lttng_kernel_event event;
+
+       memset(&event, 0, sizeof(event));
+       strncpy(event.name, syscall_name, sizeof(event.name));
+       event.name[sizeof(event.name) - 1] = '\0';
+       event.instrumentation = LTTNG_KERNEL_SYSCALL;
+       event.u.syscall.enable = 1;
+       return ioctl(fd, LTTNG_KERNEL_EVENT, &event);
+}
+
+int kernctl_disable_syscall(int fd, const char *syscall_name)
+{
+       struct lttng_kernel_event event;
+
+       memset(&event, 0, sizeof(event));
+       strncpy(event.name, syscall_name, sizeof(event.name));
+       event.name[sizeof(event.name) - 1] = '\0';
+       event.instrumentation = LTTNG_KERNEL_SYSCALL;
+       event.u.syscall.enable = 0;
+       return ioctl(fd, LTTNG_KERNEL_EVENT, &event);
+}
+
 int kernctl_create_stream(int fd)
 {
        return compat_ioctl_no_arg(fd, LTTNG_KERNEL_OLD_STREAM,
@@ -235,6 +259,11 @@ int kernctl_tracepoint_list(int fd)
                        LTTNG_KERNEL_TRACEPOINT_LIST);
 }
 
+int kernctl_syscall_list(int fd)
+{
+       return ioctl(fd, LTTNG_KERNEL_SYSCALL_LIST);
+}
+
 int kernctl_tracer_version(int fd, struct lttng_kernel_tracer_version *v)
 {
        int ret;
This page took 0.025343 seconds and 5 git commands to generate.