fix: Add missing 'pselect6_time32' and 'ppoll_time32' syscall overrides
[lttng-modules.git] / src / lttng-syscalls.h
index d221dfb7c7d2a4424d3086c548a4a928dc297bb8..a6bc30fb79e01598fe362e54fc57b497a21d0aca 100644 (file)
 #ifndef LTTNG_SYSCALLS_H
 #define LTTNG_SYSCALLS_H
 
-#include <stddef.h>
-
 #include <asm/ptrace.h>
+#include <linux/compat.h>
+#include <linux/fcntl.h>
+#include <linux/in.h>
+#include <linux/in6.h>
+#include <linux/mman.h>
+#include <linux/posix_types.h>
 
 #include <lttng/events.h>
 #include <lttng/kernel-version.h>
 
+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,13,0))
+#include <linux/landlock.h>
+#else
+struct landlock_ruleset_attr;
+
+enum landlock_rule_type {
+       LANDLOCK_RULE_PATH_BENEATH = 1,
+};
+#endif
 
 /*
- * Forward declarations for old kernels.
+ * Forward declarations allowing LTTng to build its system call instrumentation
+ * against old kernels which do not declare the more recent system call
+ * argument structure types.
  */
+struct clone_args;
+struct file_handle;
+struct futex_waitv;
+struct io_uring_params;
+struct mmap_arg_struct;
 struct mmsghdr;
-struct rlimit64;
+struct mount_attr;
 struct oldold_utsname;
 struct old_utsname;
+struct old_itimerspec32;
+struct old_timespec32;
+struct old_timeval32;
+struct old_timex32;
+struct old_utimbuf32;
+struct open_how;
+struct rlimit64;
+struct rseq;
+struct sched_attr;
 struct sel_arg_struct;
-struct mmap_arg_struct;
-struct file_handle;
+struct statx;
 struct user_msghdr;
 
-/*
- * Forward declaration for kernels >= 5.6
- */
-struct timex;
-struct timeval;
-struct itimerval;
-struct itimerspec;
+struct __aio_sigset;
+struct __kernel_old_itimerval;
+struct __kernel_timespec;
+struct __kernel_timex;
+struct __kernel_old_timeval;
+struct __kernel_itimerspec;
+
+union bpf_attr;
+
+#ifndef __kernel_long_t
+typedef long __kernel_long_t;
+#endif
+
+typedef __kernel_long_t __kernel_old_time_t;
+typedef int __bitwise __kernel_rwf_t;
+typedef __kernel_rwf_t rwf_t;
+typedef s32 old_time32_t;
 
 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0))
+/*
+ * Forward declaration and typedef for old types expected by MIPS and POWER
+ * system call instrumentation when building against kernel >= 5.6.0. To be
+ * removed after those system call instrumentation headers are regenerated
+ * against a recent kernel.
+ */
 typedef __kernel_old_time_t time_t;
+
+struct itimerspec;
+struct itimerval;
+struct timeval;
+struct timex;
 #endif
 
 struct trace_syscall_entry {
        void *event_func;
        const struct lttng_kernel_event_desc *desc;
-       const struct lttng_kernel_event_field **fields;
+       const struct lttng_kernel_event_field * const *fields;
        unsigned int nrargs;
 };
 
This page took 0.023986 seconds and 4 git commands to generate.