-/* 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 <lttng/bitfield.h>
#include <wrapper/tracepoint.h>
#include <wrapper/file.h>
#include <wrapper/rcu.h>
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
struct lttng_kernel_event ev;
int ret;
- wrapper_vmalloc_sync_all();
+ wrapper_vmalloc_sync_mappings();
if (!chan->sc_table) {
/* create syscall table mapping syscall to events */
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_wrapper_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_wrapper_tracepoint_probe_unregister("sys_exit",
+ (void *) syscall_exit_probe, chan);
if (ret)
return ret;
chan->sys_exit_registered = 0;