instrumentation: jbd2: remove compatibility code
[lttng-modules.git] / lttng-syscalls.c
index ebd9246c32ef8b4e0ce1c469d1876b443166d67f..3ecb42d98f01fd94a1ada5d3c8baf1404908f546 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: (GPL-2.0 or LGPL-2.1)
+/* SPDX-License-Identifier: (GPL-2.0-only or LGPL-2.1-only)
  *
  * lttng-syscalls.c
  *
 #include <linux/stringify.h>
 #include <linux/file.h>
 #include <linux/anon_inodes.h>
+#include <linux/fcntl.h>
 #include <asm/ptrace.h>
 #include <asm/syscall.h>
 
 #include <lib/bitfield.h>
-#include <wrapper/tracepoint.h>
-#include <wrapper/file.h>
-#include <wrapper/rcu.h>
-#include <wrapper/syscall.h>
 #include <lttng-events.h>
+#include "lttng-tracepoint.h"
+
+#define LTTNG_SYSCALL_NR_ARGS  6
 
 #ifndef CONFIG_COMPAT
 # ifndef is_compat_task
@@ -73,6 +73,18 @@ struct mmap_arg_struct;
 struct file_handle;
 struct user_msghdr;
 
+/*
+ * Forward declaration for kernels >= 5.6
+ */
+struct timex;
+struct timeval;
+struct itimerval;
+struct itimerspec;
+
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0))
+typedef __kernel_old_time_t time_t;
+#endif
+
 #ifdef IA32_NR_syscalls
 #define NR_compat_syscalls IA32_NR_syscalls
 #else
@@ -364,7 +376,7 @@ static void syscall_entry_unknown(struct lttng_event *event,
 {
        unsigned long args[LTTNG_SYSCALL_NR_ARGS];
 
-       lttng_syscall_get_arguments(current, regs, args);
+       syscall_get_arguments(current, regs, args);
        if (unlikely(in_compat_syscall()))
                __event_probe__compat_syscall_entry_unknown(event, id, args);
        else
@@ -435,7 +447,7 @@ void syscall_entry_probe(void *__data, struct pt_regs *regs, long id)
                void (*fptr)(void *__data, unsigned long arg0) = entry->func;
                unsigned long args[LTTNG_SYSCALL_NR_ARGS];
 
-               lttng_syscall_get_arguments(current, regs, args);
+               syscall_get_arguments(current, regs, args);
                fptr(event, args[0]);
                break;
        }
@@ -446,7 +458,7 @@ void syscall_entry_probe(void *__data, struct pt_regs *regs, long id)
                        unsigned long arg1) = entry->func;
                unsigned long args[LTTNG_SYSCALL_NR_ARGS];
 
-               lttng_syscall_get_arguments(current, regs, args);
+               syscall_get_arguments(current, regs, args);
                fptr(event, args[0], args[1]);
                break;
        }
@@ -458,7 +470,7 @@ void syscall_entry_probe(void *__data, struct pt_regs *regs, long id)
                        unsigned long arg2) = entry->func;
                unsigned long args[LTTNG_SYSCALL_NR_ARGS];
 
-               lttng_syscall_get_arguments(current, regs, args);
+               syscall_get_arguments(current, regs, args);
                fptr(event, args[0], args[1], args[2]);
                break;
        }
@@ -471,7 +483,7 @@ void syscall_entry_probe(void *__data, struct pt_regs *regs, long id)
                        unsigned long arg3) = entry->func;
                unsigned long args[LTTNG_SYSCALL_NR_ARGS];
 
-               lttng_syscall_get_arguments(current, regs, args);
+               syscall_get_arguments(current, regs, args);
                fptr(event, args[0], args[1], args[2], args[3]);
                break;
        }
@@ -485,7 +497,7 @@ void syscall_entry_probe(void *__data, struct pt_regs *regs, long id)
                        unsigned long arg4) = entry->func;
                unsigned long args[LTTNG_SYSCALL_NR_ARGS];
 
-               lttng_syscall_get_arguments(current, regs, args);
+               syscall_get_arguments(current, regs, args);
                fptr(event, args[0], args[1], args[2], args[3], args[4]);
                break;
        }
@@ -500,7 +512,7 @@ void syscall_entry_probe(void *__data, struct pt_regs *regs, long id)
                        unsigned long arg5) = entry->func;
                unsigned long args[LTTNG_SYSCALL_NR_ARGS];
 
-               lttng_syscall_get_arguments(current, regs, args);
+               syscall_get_arguments(current, regs, args);
                fptr(event, args[0], args[1], args[2],
                        args[3], args[4], args[5]);
                break;
@@ -515,7 +527,7 @@ static void syscall_exit_unknown(struct lttng_event *event,
 {
        unsigned long args[LTTNG_SYSCALL_NR_ARGS];
 
-       lttng_syscall_get_arguments(current, regs, args);
+       syscall_get_arguments(current, regs, args);
        if (unlikely(in_compat_syscall()))
                __event_probe__compat_syscall_exit_unknown(event, id, ret,
                        args);
@@ -591,7 +603,7 @@ void syscall_exit_probe(void *__data, struct pt_regs *regs, long ret)
                        unsigned long arg0) = entry->func;
                unsigned long args[LTTNG_SYSCALL_NR_ARGS];
 
-               lttng_syscall_get_arguments(current, regs, args);
+               syscall_get_arguments(current, regs, args);
                fptr(event, ret, args[0]);
                break;
        }
@@ -603,7 +615,7 @@ void syscall_exit_probe(void *__data, struct pt_regs *regs, long ret)
                        unsigned long arg1) = entry->func;
                unsigned long args[LTTNG_SYSCALL_NR_ARGS];
 
-               lttng_syscall_get_arguments(current, regs, args);
+               syscall_get_arguments(current, regs, args);
                fptr(event, ret, args[0], args[1]);
                break;
        }
@@ -616,7 +628,7 @@ void syscall_exit_probe(void *__data, struct pt_regs *regs, long ret)
                        unsigned long arg2) = entry->func;
                unsigned long args[LTTNG_SYSCALL_NR_ARGS];
 
-               lttng_syscall_get_arguments(current, regs, args);
+               syscall_get_arguments(current, regs, args);
                fptr(event, ret, args[0], args[1], args[2]);
                break;
        }
@@ -630,7 +642,7 @@ void syscall_exit_probe(void *__data, struct pt_regs *regs, long ret)
                        unsigned long arg3) = entry->func;
                unsigned long args[LTTNG_SYSCALL_NR_ARGS];
 
-               lttng_syscall_get_arguments(current, regs, args);
+               syscall_get_arguments(current, regs, args);
                fptr(event, ret, args[0], args[1], args[2], args[3]);
                break;
        }
@@ -645,7 +657,7 @@ void syscall_exit_probe(void *__data, struct pt_regs *regs, long ret)
                        unsigned long arg4) = entry->func;
                unsigned long args[LTTNG_SYSCALL_NR_ARGS];
 
-               lttng_syscall_get_arguments(current, regs, args);
+               syscall_get_arguments(current, regs, args);
                fptr(event, ret, args[0], args[1], args[2], args[3], args[4]);
                break;
        }
@@ -661,7 +673,7 @@ void syscall_exit_probe(void *__data, struct pt_regs *regs, long ret)
                        unsigned long arg5) = entry->func;
                unsigned long args[LTTNG_SYSCALL_NR_ARGS];
 
-               lttng_syscall_get_arguments(current, regs, args);
+               syscall_get_arguments(current, regs, args);
                fptr(event, ret, args[0], args[1], args[2],
                        args[3], args[4], args[5]);
                break;
@@ -748,8 +760,6 @@ int lttng_syscalls_register(struct lttng_channel *chan, void *filter)
        struct lttng_kernel_event ev;
        int ret;
 
-       wrapper_vmalloc_sync_all();
-
        if (!chan->sc_table) {
                /* create syscall table mapping syscall to events */
                chan->sc_table = kzalloc(sizeof(struct lttng_event *)
@@ -872,7 +882,7 @@ int lttng_syscalls_register(struct lttng_channel *chan, void *filter)
                return ret;
 #endif
        if (!chan->sys_enter_registered) {
-               ret = lttng_wrapper_tracepoint_probe_register("sys_enter",
+               ret = lttng_tracepoint_probe_register("sys_enter",
                                (void *) syscall_entry_probe, chan);
                if (ret)
                        return ret;
@@ -883,10 +893,10 @@ int lttng_syscalls_register(struct lttng_channel *chan, void *filter)
         * conflict with sys_exit syscall entry.
         */
        if (!chan->sys_exit_registered) {
-               ret = lttng_wrapper_tracepoint_probe_register("sys_exit",
+               ret = lttng_tracepoint_probe_register("sys_exit",
                                (void *) syscall_exit_probe, chan);
                if (ret) {
-                       WARN_ON_ONCE(lttng_wrapper_tracepoint_probe_unregister("sys_enter",
+                       WARN_ON_ONCE(lttng_tracepoint_probe_unregister("sys_enter",
                                (void *) syscall_entry_probe, chan));
                        return ret;
                }
@@ -905,15 +915,15 @@ int lttng_syscalls_unregister(struct lttng_channel *chan)
        if (!chan->sc_table)
                return 0;
        if (chan->sys_enter_registered) {
-               ret = lttng_wrapper_tracepoint_probe_unregister("sys_exit",
-                               (void *) syscall_exit_probe, chan);
+               ret = lttng_tracepoint_probe_unregister("sys_enter",
+                               (void *) syscall_entry_probe, chan);
                if (ret)
                        return ret;
                chan->sys_enter_registered = 0;
        }
        if (chan->sys_exit_registered) {
-               ret = lttng_wrapper_tracepoint_probe_unregister("sys_enter",
-                               (void *) syscall_entry_probe, chan);
+               ret = lttng_tracepoint_probe_unregister("sys_exit",
+                               (void *) syscall_exit_probe, chan);
                if (ret)
                        return ret;
                chan->sys_exit_registered = 0;
@@ -1284,7 +1294,7 @@ int lttng_abi_syscall_list(void)
        struct file *syscall_list_file;
        int file_fd, ret;
 
-       file_fd = lttng_get_unused_fd();
+       file_fd = get_unused_fd_flags(0);
        if (file_fd < 0) {
                ret = file_fd;
                goto fd_error;
This page took 0.026924 seconds and 4 git commands to generate.