Cleanup: namespace 'align' macros
[lttng-tools.git] / src / common / kernel-ctl / kernel-ctl.c
index 877de5f8660bfb0c534a92815818b2296b5e53d5..c535054cc1ca9d09b7a21d56b0f67c38fc18a896 100644 (file)
@@ -16,7 +16,6 @@
 #include <common/macros.h>
 #include <common/compat/errno.h>
 #include <stdarg.h>
-#include <assert.h>
 #include <common/time.h>
 
 #include "kernel-ctl.h"
@@ -25,7 +24,7 @@
 #define LTTNG_IOCTL_CHECK(fildes, request, ...)                         \
        ({                                                              \
                int _ioctl_ret = ioctl(fildes, request, ##__VA_ARGS__); \
-               assert(_ioctl_ret <= 0);                                \
+               LTTNG_ASSERT(_ioctl_ret <= 0);                                \
                !_ioctl_ret ? 0 : -errno;                               \
        })
 
@@ -180,7 +179,7 @@ int kernctl_syscall_mask(int fd, char **syscall_mask, uint32_t *nr_bits)
                goto end;
        }
 
-       array_alloc_len = ALIGN(kmask_len.len, 8) >> 3;
+       array_alloc_len = lttng_align_ceil(kmask_len.len, 8) >> 3;
 
        kmask = zmalloc(sizeof(*kmask) + array_alloc_len);
        if (!kmask) {
@@ -210,12 +209,28 @@ end:
 
 int kernctl_track_pid(int fd, int pid)
 {
-       return LTTNG_IOCTL_CHECK(fd, LTTNG_KERNEL_ABI_SESSION_TRACK_PID, pid);
+       int ret = LTTNG_IOCTL_CHECK(
+                       fd, LTTNG_KERNEL_ABI_SESSION_TRACK_PID, pid);
+
+       if (ret == -ENOSYS) {
+               ret = LTTNG_IOCTL_CHECK(fd,
+                               LTTNG_KERNEL_ABI_OLD_SESSION_TRACK_PID, pid);
+       }
+
+       return ret;
 }
 
 int kernctl_untrack_pid(int fd, int pid)
 {
-       return LTTNG_IOCTL_CHECK(fd, LTTNG_KERNEL_ABI_SESSION_UNTRACK_PID, pid);
+       int ret = LTTNG_IOCTL_CHECK(
+                       fd, LTTNG_KERNEL_ABI_SESSION_UNTRACK_PID, pid);
+
+       if (ret == -ENOSYS) {
+               ret = LTTNG_IOCTL_CHECK(fd,
+                               LTTNG_KERNEL_ABI_OLD_SESSION_UNTRACK_PID, pid);
+       }
+
+       return ret;
 }
 
 int kernctl_list_tracker_pids(int fd)
@@ -247,6 +262,7 @@ static enum lttng_kernel_abi_tracker_type get_kernel_tracker_type(
 int kernctl_track_id(int fd, enum lttng_process_attr process_attr, int id)
 {
        struct lttng_kernel_abi_tracker_args args;
+       int ret;
 
        args.id = id;
        args.type = get_kernel_tracker_type(process_attr);
@@ -254,12 +270,20 @@ int kernctl_track_id(int fd, enum lttng_process_attr process_attr, int id)
                errno = EINVAL;
                return -1;
        }
-       return LTTNG_IOCTL_CHECK(fd, LTTNG_KERNEL_ABI_SESSION_TRACK_ID, &args);
+
+       ret = LTTNG_IOCTL_CHECK(fd, LTTNG_KERNEL_ABI_SESSION_TRACK_ID, &args);
+       if (ret == -ENOSYS) {
+               ret = LTTNG_IOCTL_CHECK(fd,
+                               LTTNG_KERNEL_ABI_OLD_SESSION_TRACK_ID, &args);
+       }
+
+       return ret;
 }
 
 int kernctl_untrack_id(int fd, enum lttng_process_attr process_attr, int id)
 {
        struct lttng_kernel_abi_tracker_args args;
+       int ret;
 
        args.id = id;
        args.type = get_kernel_tracker_type(process_attr);
@@ -267,12 +291,20 @@ int kernctl_untrack_id(int fd, enum lttng_process_attr process_attr, int id)
                errno = EINVAL;
                return -1;
        }
-       return LTTNG_IOCTL_CHECK(fd, LTTNG_KERNEL_ABI_SESSION_UNTRACK_ID, &args);
+
+       ret = LTTNG_IOCTL_CHECK(fd, LTTNG_KERNEL_ABI_SESSION_UNTRACK_ID, &args);
+       if (ret == -ENOSYS) {
+               ret = LTTNG_IOCTL_CHECK(fd,
+                               LTTNG_KERNEL_ABI_OLD_SESSION_UNTRACK_ID, &args);
+       }
+
+       return ret;
 }
 
 int kernctl_list_tracker_ids(int fd, enum lttng_process_attr process_attr)
 {
        struct lttng_kernel_abi_tracker_args args;
+       int ret;
 
        args.id = -1;
        args.type = get_kernel_tracker_type(process_attr);
@@ -280,8 +312,16 @@ int kernctl_list_tracker_ids(int fd, enum lttng_process_attr process_attr)
                errno = EINVAL;
                return -1;
        }
-       return LTTNG_IOCTL_NO_CHECK(
+
+       ret = LTTNG_IOCTL_NO_CHECK(
                        fd, LTTNG_KERNEL_ABI_SESSION_LIST_TRACKER_IDS, &args);
+       if (ret == -ENOSYS) {
+               ret = LTTNG_IOCTL_NO_CHECK(fd,
+                               LTTNG_KERNEL_ABI_OLD_SESSION_LIST_TRACKER_IDS,
+                               &args);
+       }
+
+       return ret;
 }
 
 int kernctl_session_regenerate_metadata(int fd)
@@ -306,6 +346,12 @@ int kernctl_session_set_name(int fd, const char *name)
 
        ret = LTTNG_IOCTL_CHECK(
                        fd, LTTNG_KERNEL_ABI_SESSION_SET_NAME, &session_name);
+       if (ret == -ENOSYS) {
+               ret = LTTNG_IOCTL_CHECK(fd,
+                               LTTNG_KERNEL_ABI_OLD_SESSION_SET_NAME,
+                               &session_name);
+       }
+
 end:
        return ret;
 }
@@ -323,6 +369,12 @@ int kernctl_session_set_creation_time(int fd, time_t time)
 
        ret = LTTNG_IOCTL_CHECK(fd, LTTNG_KERNEL_ABI_SESSION_SET_CREATION_TIME,
                        &creation_time);
+       if (ret == -ENOSYS) {
+               ret = LTTNG_IOCTL_CHECK(fd,
+                               LTTNG_KERNEL_ABI_OLD_SESSION_SET_CREATION_TIME,
+                               &creation_time);
+       }
+
 end:
        return ret;
 }
This page took 0.024898 seconds and 4 git commands to generate.