syscalls_rust/syscalls/arch64.rs
1#![cfg(feature = "arch64")]
2
3use std::ffi::*;
4use crate::types::*;
5
6
7unsafe extern "system" {
8 pub unsafe fn read(fd: c_uint, buf: *mut c_char, count: size_t) -> ssize_t;
9 pub unsafe fn write(fd: c_uint, buf: *const c_char, count: size_t) -> ssize_t;
10 pub unsafe fn open(filename: *const c_char, flags: c_int, mode: umode_t) -> c_long;
11 pub unsafe fn close(fd: c_uint) -> c_int;
12
13 // TODO: change the types to define type
14 pub unsafe fn newstat(filename: *const c_char, statbuf: *mut Stat) -> c_int;
15 pub unsafe fn newfstat(fd: c_uint, statbuf: *mut Stat) -> c_int;
16 pub unsafe fn newlstat(filename: *const c_char, statbuf: *mut Stat) -> c_int;
17 pub unsafe fn poll(ufds: *mut Pollfd, nfds: c_uint, timeout_msecs: c_int) -> c_int;
18 pub unsafe fn lseek(fd: c_uint, offset: off_t, whence: c_uint) -> off_t;
19 pub unsafe fn mmap(addr: c_ulong, len: c_ulong, prot: c_ulong, flags: c_ulong, fd: c_ulong, off: c_ulong) -> c_ulong;
20 pub unsafe fn mprotect(start: c_ulong, len: size_t, prot: c_ulong) -> c_int;
21 pub unsafe fn munmap(addr: c_ulong, len: size_t) -> c_int;
22 pub unsafe fn brk(brk: c_ulong) -> c_ulong;
23
24
25 // pub unsafe fn rt_sigaction (int sig, const struct sigaction *act, struct sigaction *oact, size_t sigsetsize);
26 // pub unsafe fn rt_sigaction(sig: c_int, const struct sigaction *act, struct sigaction *oact, size_t sigsetsize) -> c_int;
27
28 // pub unsafe fn rt_sigprocmask (int how, sigset_t *nset, sigset_t *oset, size_t sigsetsize);
29 // pub unsafe fn rt_sigreturn (void);
30 // pub unsafe fn ioctl (unsigned int fd, unsigned int cmd, unsigned long arg);
31 // pub unsafe fn pread64 (unsigned int fd, char *buf, size_t count, loff_t pos);
32 // pub unsafe fn pwrite64 (unsigned int fd, const char *buf, size_t count, loff_t pos);
33 // pub unsafe fn readv (unsigned long fd, const struct iovec *vec, unsigned long vlen);
34 // pub unsafe fn writev (unsigned long fd, const struct iovec *vec, unsigned long vlen);
35 // pub unsafe fn access (const char *filename, int mode);
36 // pub unsafe fn pipe (int *fildes);
37 // pub unsafe fn select (int n, fd_set *inp, fd_set *outp, fd_set *exp, struct __kernel_old_timeval *tvp);
38 // pub unsafe fn sched_yield (void);
39 // pub unsafe fn mremap (unsigned long addr, unsigned long old_len, unsigned long new_len, unsigned long flags, unsigned long new_addr);
40 // pub unsafe fn msync (MMU unsigned long start, size_t len, int flags);
41 // pub unsafe fn mincore (MMU unsigned long start, size_t len, unsigned char *vec);
42 // pub unsafe fn madvise (ADVISE_SYSCALLS unsigned long start, size_t len_in, int behavior);
43 // pub unsafe fn shmget (SYSVIPC key_t key, size_t size, int shmflg);
44 // pub unsafe fn shmat (SYSVIPC int shmid, char *shmaddr, int shmflg
45 // pub unsafe fn shmct (SYSVIPC int shmid, int cmd, struct shmid_ds *buf);
46 // pub unsafe fn dup (unsigned int fildes);
47 // pub unsafe fn dup2 (unsigned int oldfd, unsigned int newfd);
48 // pub unsafe fn pause (void);
49 // pub unsafe fn nanosleep (struct __kernel_timespec *rqtp, struct __kernel_timespec *rmtp);
50 // pub unsafe fn getitimer (int which, struct __kernel_old_itimerval *value);
51 // pub unsafe fn alarm (unsigned int seconds
52 // pub unsafe fn setitimer (int which, struct __kernel_old_itimerval *value, struct __kernel_old_itimerval *ovalue);
53
54 // pub unsafe fn getpid (void);
55 pub unsafe fn getpid() -> pid_t;
56
57 // pub unsafe fn sendfile64 (int out_fd, int in_fd, loff_t *offset, size_t count);
58 pub unsafe fn socket(family: c_int, _type: c_int, protocol: c_int) -> c_int;
59 pub unsafe fn connect(fd: c_int,uservaddr: *mut sockaddr, addrlen: c_int) -> c_int;
60 pub unsafe fn accept(fd: c_int, upeer_sockaddr: *mut sockaddr, upeer_addrlen: *mut c_int) -> c_int;
61 // pub unsafe fn sendto (NET int fd, void *buff, size_t len, unsigned int flags, struct sockaddr *addr, int addr_len);
62 // pub unsafe fn recvfrom (NET int fd, void *ubuf, size_t size, unsigned int flags, struct sockaddr *addr, int *addr_len);
63 // pub unsafe fn sendmsg (NET int fd, struct user_msghdr *msg, unsigned int flags);
64 // pub unsafe fn recvmsg (NET int fd, struct user_msghdr *msg, unsigned int flags);
65 // pub unsafe fn shutdown (NET int fd, int how);
66 pub unsafe fn bind(fd: c_int, umyaddr: *mut sockaddr, addrlen: c_int) -> c_int;
67 pub unsafe fn listen(fd: c_int, backlog: c_int) -> c_int;
68 // pub unsafe fn getsockname (NET int fd, struct sockaddr *usockaddr, int *usockaddr_len);
69 // pub unsafe fn getpeername (NET int fd, struct sockaddr *usockaddr, int *usockaddr_len);
70 // pub unsafe fn socketpair (NET int family, int type, int protocol, int *usockvec);
71 // pub unsafe fn setsockopt (NET int fd, int level, int optname, char *optval, int optlen);
72 // pub unsafe fn getsockopt (NET int fd, int level, int optname, char *optval, int *optlen);
73 // pub unsafe fn clone (unsigned long clone_flags, unsigned long newsp, int *parent_tidptr, int *child_tidptr, unsigned long tls);
74 pub unsafe fn fork() -> pid_t;
75 pub unsafe fn vfork() -> pid_t;
76 pub unsafe fn execve(filename: *const c_char, argv: *const *const c_char, envp: *const *const c_char) -> c_int;
77 pub unsafe fn exit(error_code: c_int);
78 // pub unsafe fn wait4 (pid_t upid, int *stat_addr, int options, struct rusage *ru);
79 pub unsafe fn kill(pid: pid_t, sig: c_int) -> c_int;
80 // pub unsafe fn newuname ( struct new_utsname *name);
81 // pub unsafe fn semget (SYSVIPC key_t key, int nsems, int semflg);
82 // pub unsafe fn semop (SYSVIPC int semid, struct sembuf *tsops, unsigned nsops);
83 // pub unsafe fn semctl (SYSVIPC int semid, int semnum, int cmd, unsigned long arg);
84 // pub unsafe fn shmdt (SYSVIPC char *shmaddr);
85 // pub unsafe fn msgget (SYSVIPC key_t key, int msgflg);
86 // pub unsafe fn msgsnd (SYSVIPC int msqid, struct msgbuf *msgp, size_t msgsz, int msgflg);
87 // pub unsafe fn msgrcv (SYSVIPC int msqid, struct msgbuf *msgp, size_t msgsz, long msgtyp, int msgflg);
88 // pub unsafe fn msgctl (SYSVIPC int msqid, int cmd, struct msqid_ds *buf);
89 pub unsafe fn fcntl(fd: c_uint, cmd: c_uint, arg: c_uint) -> c_long;
90 pub unsafe fn flock(fd: c_uint, cmd: c_uint) -> c_int;
91 pub unsafe fn fsync(fd: c_uint) -> c_int;
92 pub unsafe fn fdatasync(fd: c_uint) -> c_int;
93 pub unsafe fn truncate(path: *const c_char, length: c_long) -> c_long;
94 pub unsafe fn ftruncate(fd: c_uint, length: off_t) -> c_long;
95 // pub unsafe fn getdents(unsigned int fd, struct linux_dirent *dirent, unsigned int count);
96 pub unsafe fn getcwd(buf: *mut c_char, size: c_ulong) -> c_int;
97 pub unsafe fn chdir(filename: *const c_char) -> c_int;
98 pub unsafe fn fchdir(fd: c_uint) -> c_int;
99 pub unsafe fn rename(oldname: *const c_char, newname: *const c_char) -> c_uint;
100 pub unsafe fn mkdir(pathname: *const c_char, mode: umode_t) -> c_int;
101 pub unsafe fn rmdir(pathname: *const c_char) -> c_int;
102 pub unsafe fn creat(pathname: *const c_char, mode: umode_t) -> c_long;
103 pub unsafe fn link(oldname: *const c_char, newname: *const c_char) -> c_int;
104 pub unsafe fn unlink(pathname: *const c_char) -> c_int;
105 pub unsafe fn symlink(oldname: *const c_char, newname: *const c_char) -> c_int;
106 pub unsafe fn readlink(path: *const c_char, buf: *mut c_char, bufsiz: c_int) -> c_int;
107 pub unsafe fn chmod(filename: *const c_char, mode: umode_t) -> c_int;
108 pub unsafe fn fchmod(fd: c_int, mode: umode_t) -> c_int;
109 pub unsafe fn chown(filename: *const c_char, user: uid_t, group: gid_t) -> c_int;
110 // pub unsafe fn fchown (unsigned int fd, uid_t user, gid_t group);
111 // pub unsafe fn lchown (const char *filename, uid_t user, gid_t group);
112 pub unsafe fn umask (mask: c_int) -> c_int;
113 // pub unsafe fn gettimeofday (struct __kernel_old_timeval *tv, struct timezone *tz);
114 // pub unsafe fn getrlimit (unsigned int resource, struct rlimit *rlim);
115 // pub unsafe fn getrusage (int who, struct rusage *ru);
116 // pub unsafe fn sysinfo (struct sysinfo *info);
117 // pub unsafe fn times (struct tms *tbuf);
118 // pub unsafe fn ptrace (long request, long pid, unsigned long addr, unsigned long data);
119 pub unsafe fn getuid() -> uid_t;
120 pub unsafe fn syslog(_type: c_int, buf: *mut c_char, len: c_int) -> c_int;
121 pub unsafe fn getgid() -> uid_t;
122 pub unsafe fn setuid(uid: uid_t) -> c_long;
123 pub unsafe fn setgid(gid: gid_t) -> c_long;
124 pub unsafe fn geteuid() -> uid_t;
125 pub unsafe fn getegid() -> uid_t;
126 pub unsafe fn setpgid(pid: pid_t, pgid: pid_t) -> c_int;
127 pub unsafe fn getppid() -> c_int;
128 pub unsafe fn getpgrp() -> c_int;
129 pub unsafe fn setsid() -> c_int;
130 // pub unsafe fn setreuid (MULTIUSER uid_t ruid, uid_t euid);
131 // pub unsafe fn setregid (MULTIUSER gid_t rgid, gid_t egid);
132 // pub unsafe fn getgroups (MULTIUSER int gidsetsize, gid_t *grouplist);
133 // pub unsafe fn setgroups (MULTIUSER int gidsetsize, gid_t *grouplist);
134 // pub unsafe fn setresuid (MULTIUSER uid_t ruid, uid_t euid, uid_t suid);
135 // pub unsafe fn getresuid (MULTIUSER uid_t *ruidp, uid_t *euidp, uid_t *suidp);
136 // pub unsafe fn setresgid (MULTIUSER gid_t rgid, gid_t egid, gid_t sgid);
137 // pub unsafe fn getresgid (MULTIUSER gid_t *rgidp, gid_t *egidp, gid_t *sgidp);
138 // pub unsafe fn getpgid (pid_t pid);
139 // pub unsafe fn setfsuid (MULTIUSER uid_t uid);
140 // pub unsafe fn setfsgid (MULTIUSER gid_t gid);
141 // pub unsafe fn getsid (pid_t pid);
142 // pub unsafe fn capget (MULTIUSER cap_user_header_t header, cap_user_data_t dataptr);
143 // pub unsafe fn capset (MULTIUSER cap_user_header_t header, const cap_user_data_t data);
144 // pub unsafe fn rt_sigpending (sigset_t *uset, size_t sigsetsize);
145 // pub unsafe fn rt_sigtimedwait (const sigset_t *uthese, siginfo_t *uinfo, const struct __kernel_timespec *uts, size_t sigsetsize);
146
147 // pub unsafe fn rt_sigsuspend (sigset_t *unewset, size_t sigsetsize);
148 // pub unsafe fn rt_sigqueueinfo (pid_t pid, int sig, siginfo_t *uinfo);
149 // pub unsafe fn sigaltstack (const stack_t *uss, stack_t *uoss);
150 // pub unsafe fn utime (char *filename, struct utimbuf *times);
151 // pub unsafe fn mknod (const char *filename, umode_t mode, unsigned dev);
152 // pub unsafe fn personality (unsigned int personality);
153 // pub unsafe fn ustat (unsigned dev, struct ustat *ubuf);
154 // pub unsafe fn statfs (const char *pathname, struct statfs *buf);
155 // pub unsafe fn fstatfs (unsigned int fd, struct statfs *buf);
156 // pub unsafe fn sysfs (SYSFS_SYSCALL int option, unsigned long arg1, unsigned long arg2);
157 // pub unsafe fn getpriority (int which, int who);
158 // pub unsafe fn setpriority (int which, int who, int niceval);
159 // pub unsafe fn sched_setparam (pid_t pid, struct sched_param *param);
160 // pub unsafe fn sched_getparam (pid_t pid, struct sched_param *param);
161 // pub unsafe fn sched_setscheduler (pid_t pid, int policy, struct sched_param *param);
162 // pub unsafe fn sched_getscheduler (pid_t pid);
163 // pub unsafe fn sched_get_priority_max (int policy);
164 // pub unsafe fn sched_get_priority_min (int policy);
165 // pub unsafe fn sched_rr_get_interval ( pid_t pid, struct __kernel_timespec *interval);
166 // pub unsafe fn mlock ( MMU unsigned long start, size_t len);
167 // pub unsafe fn munlock ( MMU unsigned long start, size_t len);
168 // pub unsafe fn mlockall ( MMU int flags);
169 // pub unsafe fn munlockall ( MMU void);
170 // pub unsafe fn vhangup ( void);
171 // pub unsafe fn modify_ldt ( MODIFY_LDT_SYSCALL int func, void *ptr, unsigned long bytecount);
172 // pub unsafe fn pivot_root ( const char *new_root, const char *put_old);
173 // pub unsafe fn prctl ( int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5);
174 // pub unsafe fn arch_prctl ( int option, unsigned long arg2);
175 // pub unsafe fn adjtimex ( struct __kernel_timex *txc_p);
176 // pub unsafe fn setrlimit ( unsigned int resource, struct rlimit *rlim);
177 // pub unsafe fn chroot ( const char *filename);
178 // pub unsafe fn sync ( void);
179 // pub unsafe fn acct ( BSD_PROCESS_ACCT const char *name);
180 // pub unsafe fn settimeofday ( struct __kernel_old_timeval *tv, struct timezone *tz);
181 // pub unsafe fn mount ( char *dev_name, char *dir_name, char *type, unsigned long flags, void *data);
182 // pub unsafe fn umount ( char *name, int flags);
183 // pub unsafe fn swapon ( SWAP const char *specialfile, int swap_flags);
184 // pub unsafe fn swapoff ( SWAP const char *specialfile);
185 // pub unsafe fn reboot ( int magic1, int magic2, unsigned int cmd, void *arg);
186 // pub unsafe fn sethostname ( char *name, int len);
187 // pub unsafe fn setdomainname( char *name, int len);
188}
189
190// pub unsafe fn iopl __x64_sys_iopl arch/x86/kernel/ioport.c:173 X86_IOPL_IOPERM unsigned int level
191// pub unsafe fn ioperm __x64_sys_ioperm arch/x86/kernel/ioport.c:152 X86_IOPL_IOPERM unsigned long from, unsigned long num, int turn_on
192// pub unsafe fn init_module __x64_sys_init_module kernel/module/main.c:3433 MODULES void *umod, unsigned long len, const char *uargs
193// pub unsafe fn delete_module __x64_sys_delete_module kernel/module/main.c:732 MODULE_UNLOAD const char *name_user, unsigned int flags
194// pub unsafe fn quotactl __x64_sys_quotactl fs/quota/quota.c:917 QUOTACTL unsigned int cmd, const char *special, qid_t id, void *addr
195// pub unsafe fn gettid __x64_sys_gettid kernel/sys.c:973 void
196// pub unsafe fn readahead __x64_sys_readahead mm/readahead.c:702 int fd, loff_t offset, size_t count
197// pub unsafe fn setxattr __x64_sys_setxattr fs/xattr.c:743 const char *pathname, const char *name, const void *value, size_t size, int flags
198// pub unsafe fn lsetxattr __x64_sys_lsetxattr fs/xattr.c:750 const char *pathname, const char *name, const void *value, size_t size, int flags
199// pub unsafe fn fsetxattr __x64_sys_fsetxattr fs/xattr.c:758 int fd, const char *name, const void *value, size_t size, int flags
200// pub unsafe fn getxattr __x64_sys_getxattr fs/xattr.c:888 const char *pathname, const char *name, void *value, size_t size
201// pub unsafe fn lgetxattr __x64_sys_lgetxattr fs/xattr.c:894 const char *pathname, const char *name, void *value, size_t size
202// pub unsafe fn fgetxattr __x64_sys_fgetxattr fs/xattr.c:901 int fd, const char *name, void *value, size_t size
203// pub unsafe fn listxattr __x64_sys_listxattr fs/xattr.c:998 const char *pathname, char *list, size_t size
204// pub unsafe fn llistxattr __x64_sys_llistxattr fs/xattr.c:1004 const char *pathname, char *list, size_t size
205// pub unsafe fn flistxattr __x64_sys_flistxattr fs/xattr.c:1010 int fd, char *list, size_t size
206// pub unsafe fn removexattr __x64_sys_removexattr fs/xattr.c:1097 const char *pathname, const char *name
207// pub unsafe fn lremovexattr __x64_sys_lremovexattr fs/xattr.c:1103 const char *pathname, const char *name
208// pub unsafe fn fremovexattr __x64_sys_fremovexattr fs/xattr.c:1109 int fd, const char *name
209// pub unsafe fn tkill __x64_sys_tkill kernel/signal.c:4160 pid_t pid, int sig
210// pub unsafe fn time __x64_sys_time kernel/time/time.c:62 __kernel_old_time_t *tloc
211// pub unsafe fn futex __x64_sys_futex kernel/futex/syscalls.c:160 FUTEX u32 *uaddr, int op, u32 val, const struct __kernel_timespec *utime, u32 *uaddr2, u32 val3
212// pub unsafe fn sched_setaffinity __x64_sys_sched_setaffinity kernel/sched/syscalls.c:1282 pid_t pid, unsigned int len, unsigned long *user_mask_ptr
213// pub unsafe fn sched_getaffinity __x64_sys_sched_getaffinity kernel/sched/syscalls.c:1327 pid_t pid, unsigned int len, unsigned long *user_mask_ptr
214// pub unsafe fn io_setup __x64_sys_io_setup fs/aio.c:1382 AIO unsigned nr_events, aio_context_t *ctxp
215// pub unsafe fn io_destroy __x64_sys_io_destroy fs/aio.c:1451 AIO aio_context_t ctx
216// pub unsafe fn io_getevents __x64_sys_io_getevents fs/aio.c:2250 AIO aio_context_t ctx_id, long min_nr, long nr, struct io_event *events, struct __kernel_timespec *timeout
217// pub unsafe fn io_submit __x64_sys_io_submit fs/aio.c:2081 AIO aio_context_t ctx_id, long nr, struct iocb **iocbpp
218// pub unsafe fn io_cancel __x64_sys_io_cancel fs/aio.c:2175 AIO aio_context_t ctx_id, struct iocb *iocb, struct io_event *result
219// pub unsafe fn epoll_create __x64_sys_epoll_create fs/eventpoll.c:2256 EPOLL int size
220// pub unsafe fn remap_file_pages __x64_sys_remap_file_pages mm/mmap.c:1396 MMU unsigned long start, unsigned long size, unsigned long prot, unsigned long pgoff, unsigned long flags
221// pub unsafe fn getdents64 __x64_sys_getdents64 fs/readdir.c:389 unsigned int fd, struct linux_dirent64 *dirent, unsigned int count
222// pub unsafe fn set_tid_address __x64_sys_set_tid_address kernel/fork.c:1940 int *tidptr
223// pub unsafe fn restart_syscall __x64_sys_restart_syscall kernel/signal.c:3177 void
224// pub unsafe fn semtimedop __x64_sys_semtimedop ipc/sem.c:2268 SYSVIPC int semid, struct sembuf *tsops, unsigned int nsops, const struct __kernel_timespec *timeout
225// pub unsafe fn fadvise64 __x64_sys_fadvise64 mm/fadvise.c:208 ADVISE_SYSCALLS int fd, loff_t offset, size_t len, int advice
226
227// Time functions
228 // pub unsafe fn timer_create ( const clockid_t which_clock, struct sigevent *timer_event_spec, timer_t *created_timer_id);
229 // pub unsafe fn timer_settime ( timer_t timer_id, int flags, const struct __kernel_itimerspec *new_setting, struct __kernel_itimerspec *old_setting);
230 // pub unsafe fn timer_gettime ( timer_t timer_id, struct __kernel_itimerspec *setting);
231 // pub unsafe fn timer_getoverrun ( timer_t timer_id);
232 // pub unsafe fn timer_delete ( timer_t timer_id);
233
234// pub unsafe fn clock_settime __x64_sys_clock_settime kernel/time/posix-timers.c:1119 const clockid_t which_clock, const struct __kernel_timespec *tp
235// pub unsafe fn clock_gettime __x64_sys_clock_gettime kernel/time/posix-timers.c:1138 const clockid_t which_clock, struct __kernel_timespec *tp
236// pub unsafe fn clock_getres __x64_sys_clock_getres kernel/time/posix-timers.c:1258 const clockid_t which_clock, struct __kernel_timespec *tp
237// pub unsafe fn clock_nanosleep __x64_sys_clock_nanosleep kernel/time/posix-timers.c:1379 const clockid_t which_clock, int flags, const struct __kernel_timespec *rqtp, struct __kernel_timespec *rmtp
238
239// pub unsafe fn exit_group __x64_sys_exit_group kernel/exit.c:1096 int error_code
240// pub unsafe fn epoll_wait __x64_sys_epoll_wait fs/eventpoll.c:2487 EPOLL int epfd, struct epoll_event *events, int maxevents, int timeout
241// pub unsafe fn epoll_ctl __x64_sys_epoll_ctl fs/eventpoll.c:2436 EPOLL int epfd, int op, int fd, struct epoll_event *event
242// pub unsafe fn tgkill __x64_sys_tgkill kernel/signal.c:4144 pid_t tgid, pid_t pid, int sig
243// pub unsafe fn utimes __x64_sys_utimes fs/utimes.c:204 char *filename, struct __kernel_old_timeval *utimes
244// pub unsafe fn mbind __x64_sys_mbind mm/mempolicy.c:1607 NUMA unsigned long start, unsigned long len, unsigned long mode, const unsigned long *nmask, unsigned long maxnode, unsigned int flags
245// pub unsafe fn set_mempolicy __x64_sys_set_mempolicy mm/mempolicy.c:1634 NUMA int mode, const unsigned long *nmask, unsigned long maxnode
246// pub unsafe fn get_mempolicy __x64_sys_get_mempolicy mm/mempolicy.c:1764 NUMA int *policy, unsigned long *nmask, unsigned long maxnode, unsigned long addr, unsigned long flags
247// pub unsafe fn mq_open __x64_sys_mq_open ipc/mqueue.c:944 POSIX_MQUEUE const char *u_name, int oflag, umode_t mode, struct mq_attr *u_attr
248// pub unsafe fn mq_unlink __x64_sys_mq_unlink ipc/mqueue.c:954 POSIX_MQUEUE const char *u_name
249// pub unsafe fn mq_timedsend __x64_sys_mq_timedsend ipc/mqueue.c:1258 POSIX_MQUEUE mqd_t mqdes, const char *u_msg_ptr, size_t msg_len, unsigned int msg_prio, const struct __kernel_timespec *u_abs_timeout
250// pub unsafe fn mq_timedreceive __x64_sys_mq_timedreceive ipc/mqueue.c:1272 POSIX_MQUEUE mqd_t mqdes, char *u_msg_ptr, size_t msg_len, unsigned int *u_msg_prio, const struct __kernel_timespec *u_abs_timeout
251// pub unsafe fn mq_notify __x64_sys_mq_notify ipc/mqueue.c:1400 POSIX_MQUEUE mqd_t mqdes, const struct sigevent *u_notification
252// pub unsafe fn mq_getsetattr __x64_sys_mq_getsetattr ipc/mqueue.c:1452 POSIX_MQUEUE mqd_t mqdes, const struct mq_attr *u_mqstat, struct mq_attr *u_omqstat
253// pub unsafe fn kexec_load __x64_sys_kexec_load kernel/kexec.c:242 KEXEC unsigned long entry, unsigned long nr_segments, struct kexec_segment *segments, unsigned long flags
254// pub unsafe fn waitid __x64_sys_waitid kernel/exit.c:1782 int which, pid_t upid, struct siginfo *infop, int options, struct rusage *ru
255// pub unsafe fn add_key __x64_sys_add_key security/keys/keyctl.c:74 KEYS const char *_type, const char *_description, const void *_payload, size_t plen, key_serial_t ringid
256// pub unsafe fn request_key __x64_sys_request_key security/keys/keyctl.c:167 KEYS const char *_type, const char *_description, const char *_callout_info, key_serial_t destringid
257// pub unsafe fn keyctl __x64_sys_keyctl security/keys/keyctl.c:1874 KEYS int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5
258// pub unsafe fn ioprio_set __x64_sys_ioprio_set block/ioprio.c:69 BLOCK int which, int who, int ioprio
259// pub unsafe fn ioprio_get __x64_sys_ioprio_get block/ioprio.c:184 BLOCK int which, int who
260// pub unsafe fn inotify_init __x64_sys_inotify_init fs/notify/inotify/inotify_user.c:724 INOTIFY_USER void
261// pub unsafe fn inotify_add_watch __x64_sys_inotify_add_watch fs/notify/inotify/inotify_user.c:729 INOTIFY_USER int fd, const char *pathname, u32 mask
262// pub unsafe fn inotify_rm_watch __x64_sys_inotify_rm_watch fs/notify/inotify/inotify_user.c:786 INOTIFY_USER int fd, __s32 wd
263// pub unsafe fn migrate_pages __x64_sys_migrate_pages mm/mempolicy.c:1727 MIGRATION pid_t pid, unsigned long maxnode, const unsigned long *old_nodes, const unsigned long *new_nodes
264// pub unsafe fn openat __x64_sys_openat fs/open.c:1428 int dfd, const char *filename, int flags, umode_t mode
265// pub unsafe fn mkdirat __x64_sys_mkdirat fs/namei.c:4347 int dfd, const char *pathname, umode_t mode
266// pub unsafe fn mknodat __x64_sys_mknodat fs/namei.c:4264 int dfd, const char *filename, umode_t mode, unsigned int dev
267// pub unsafe fn fchownat __x64_sys_fchownat fs/open.c:821 int dfd, const char *filename, uid_t user, gid_t group, int flag
268// pub unsafe fn futimesat __x64_sys_futimesat fs/utimes.c:198 int dfd, const char *filename, struct __kernel_old_timeval *utimes
269// pub unsafe fn newfstatat __x64_sys_newfstatat fs/stat.c:524 int dfd, const char *filename, struct stat *statbuf, int flag
270// pub unsafe fn unlinkat __x64_sys_unlinkat fs/namei.c:4623 int dfd, const char *pathname, int flag
271// pub unsafe fn renameat __x64_sys_renameat fs/namei.c:5262 int olddfd, const char *oldname, int newdfd, const char *newname
272// pub unsafe fn linkat __x64_sys_linkat fs/namei.c:4888 int olddfd, const char *oldname, int newdfd, const char *newname, int flags
273// pub unsafe fn symlinkat __x64_sys_symlinkat fs/namei.c:4708 const char *oldname, int newdfd, const char *newname
274// pub unsafe fn readlinkat __x64_sys_readlinkat fs/stat.c:590 int dfd, const char *pathname, char *buf, int bufsiz
275// pub unsafe fn fchmodat __x64_sys_fchmodat fs/open.c:702 int dfd, const char *filename, umode_t mode
276// pub unsafe fn faccessat __x64_sys_faccessat fs/open.c:531 int dfd, const char *filename, int mode
277// pub unsafe fn pselect6 __x64_sys_pselect6 fs/select.c:793 int n, fd_set *inp, fd_set *outp, fd_set *exp, struct __kernel_timespec *tsp, void *sig
278// pub unsafe fn ppoll __x64_sys_ppoll fs/select.c:1095 struct pollfd *ufds, unsigned int nfds, struct __kernel_timespec *tsp, const sigset_t *sigmask, size_t sigsetsize
279// pub unsafe fn unshare __x64_sys_unshare kernel/fork.c:3402 unsigned long unshare_flags
280// pub unsafe fn set_robust_list __x64_sys_set_robust_list kernel/futex/syscalls.c:28 FUTEX struct robust_list_head *head, size_t len
281// pub unsafe fn get_robust_list __x64_sys_get_robust_list kernel/futex/syscalls.c:48 FUTEX int pid, struct robust_list_head **head_ptr, size_t *len_ptr
282// pub unsafe fn splice __x64_sys_splice fs/splice.c:1621 int fd_in, loff_t *off_in, int fd_out, loff_t *off_out, size_t len, unsigned int flags
283// pub unsafe fn tee __x64_sys_tee fs/splice.c:1988 int fdin, int fdout, size_t len, unsigned int flags
284// pub unsafe fn sync_file_range __x64_sys_sync_file_range fs/sync.c:363 int fd, loff_t offset, loff_t nbytes, unsigned int flags
285// pub unsafe fn vmsplice __x64_sys_vmsplice fs/splice.c:1583 int fd, const struct iovec *uiov, unsigned long nr_segs, unsigned int flags
286// pub unsafe fn move_pages __x64_sys_move_pages mm/migrate.c:2564 MIGRATION pid_t pid, unsigned long nr_pages, const void **pages, const int *nodes, int *status, int flags
287// pub unsafe fn utimensat __x64_sys_utimensat fs/utimes.c:143 int dfd, const char *filename, struct __kernel_timespec *utimes, int flags
288// pub unsafe fn epoll_pwait __x64_sys_epoll_pwait fs/eventpoll.c:2521 EPOLL int epfd, struct epoll_event *events, int maxevents, int timeout, const sigset_t *sigmask, size_t sigsetsize
289// pub unsafe fn signalfd __x64_sys_signalfd fs/signalfd.c:319 SIGNALFD int ufd, sigset_t *user_mask, size_t sizemask
290// pub unsafe fn timerfd_create __x64_sys_timerfd_create fs/timerfd.c:395 int clockid, int flags
291// pub unsafe fn eventfd __x64_sys_eventfd fs/eventfd.c:429 unsigned int count
292// pub unsafe fn fallocate __x64_sys_fallocate fs/open.c:354 int fd, int mode, loff_t offset, loff_t len
293// pub unsafe fn timerfd_settime __x64_sys_timerfd_settime fs/timerfd.c:560 int ufd, int flags, const struct __kernel_itimerspec *utmr, struct __kernel_itimerspec *otmr
294// pub unsafe fn timerfd_gettime __x64_sys_timerfd_gettime fs/timerfd.c:578 int ufd, struct __kernel_itimerspec *otmr
295// pub unsafe fn accept4 __x64_sys_accept4 net/socket.c:2014 NET int fd, struct sockaddr *upeer_sockaddr, int *upeer_addrlen, int flags
296// pub unsafe fn signalfd4 __x64_sys_signalfd4 fs/signalfd.c:307 SIGNALFD int ufd, sigset_t *user_mask, size_t sizemask, int flags
297// pub unsafe fn eventfd2 __x64_sys_eventfd2 fs/eventfd.c:424 unsigned int count, int flags
298// pub unsafe fn epoll_create1 __x64_sys_epoll_create1 fs/eventpoll.c:2251 EPOLL int flags
299// pub unsafe fn dup3 __x64_sys_dup3 fs/file.c:1378 unsigned int oldfd, unsigned int newfd, int flags
300// pub unsafe fn pipe2 __x64_sys_pipe2 fs/pipe.c:1040 int *fildes, int flags
301// pub unsafe fn inotify_init1 __x64_sys_inotify_init1 fs/notify/inotify/inotify_user.c:719 INOTIFY_USER int flags
302// pub unsafe fn preadv __x64_sys_preadv fs/read_write.c:1167 unsigned long fd, const struct iovec *vec, unsigned long vlen, unsigned long pos_l, unsigned long pos_h
303// pub unsafe fn pwritev __x64_sys_pwritev fs/read_write.c:1187 unsigned long fd, const struct iovec *vec, unsigned long vlen, unsigned long pos_l, unsigned long pos_h
304// pub unsafe fn rt_tgsigqueueinfo __x64_sys_rt_tgsigqueueinfo kernel/signal.c:4228 pid_t tgid, pid_t pid, int sig, siginfo_t *uinfo
305// pub unsafe fn perf_event_open __x64_sys_perf_event_open kernel/events/core.c:12721 PERF_EVENTS struct perf_event_attr *attr_uptr, pid_t pid, int cpu, int group_fd, unsigned long flags
306// pub unsafe fn recvmmsg __x64_sys_recvmmsg net/socket.c:3030 NET int fd, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct __kernel_timespec *timeout
307// pub unsafe fn fanotify_init __x64_sys_fanotify_init fs/notify/fanotify/fanotify_user.c:1405 FANOTIFY unsigned int flags, unsigned int event_f_flags
308// pub unsafe fn fanotify_mark __x64_sys_fanotify_mark fs/notify/fanotify/fanotify_user.c:1913 FANOTIFY int fanotify_fd, unsigned int flags, __u64 mask, int dfd, const char *pathname
309// pub unsafe fn prlimit64 __x64_sys_prlimit64 kernel/sys.c:1693 pid_t pid, unsigned int resource, const struct rlimit64 *new_rlim, struct rlimit64 *old_rlim
310// pub unsafe fn name_to_handle_at __x64_sys_name_to_handle_at fs/fhandle.c:129 FHANDLE int dfd, const char *name, struct file_handle *handle, void *mnt_id, int flag
311// pub unsafe fn open_by_handle_at __x64_sys_open_by_handle_at fs/fhandle.c:437 FHANDLE int mountdirfd, struct file_handle *handle, int flags
312// pub unsafe fn clock_adjtime __x64_sys_clock_adjtime kernel/time/posix-timers.c:1168 const clockid_t which_clock, struct __kernel_timex *utx
313// pub unsafe fn syncfs __x64_sys_syncfs fs/sync.c:149 int fd
314// pub unsafe fn sendmmsg __x64_sys_sendmmsg net/socket.c:2750 NET int fd, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags
315// pub unsafe fn setns __x64_sys_setns kernel/nsproxy.c:546 int fd, int flags
316// pub unsafe fn getcpu __x64_sys_getcpu kernel/sys.c:2819 unsigned *cpup, unsigned *nodep, struct getcpu_cache *unused
317// pub unsafe fn process_vm_readv __x64_sys_process_vm_readv mm/process_vm_access.c:292 CROSS_MEMORY_ATTACH pid_t pid, const struct iovec *lvec, unsigned long liovcnt, const struct iovec *rvec, unsigned long riovcnt, unsigned long flags
318// pub unsafe fn process_vm_writev __x64_sys_process_vm_writev mm/process_vm_access.c:299 CROSS_MEMORY_ATTACH pid_t pid, const struct iovec *lvec, unsigned long liovcnt, const struct iovec *rvec, unsigned long riovcnt, unsigned long flags
319// pub unsafe fn kcmp __x64_sys_kcmp kernel/kcmp.c:135 KCMP pid_t pid1, pid_t pid2, int type, unsigned long idx1, unsigned long idx2
320// pub unsafe fn finit_module __x64_sys_finit_module kernel/module/main.c:3587 MODULES int fd, const char *uargs, int flags
321// pub unsafe fn sched_setattr __x64_sys_sched_setattr kernel/sched/syscalls.c:991 pid_t pid, struct sched_attr *uattr, unsigned int flags
322// pub unsafe fn sched_getattr __x64_sys_sched_getattr kernel/sched/syscalls.c:1091 pid_t pid, struct sched_attr *uattr, unsigned int usize, unsigned int flags
323// pub unsafe fn renameat2 __x64_sys_renameat2 fs/namei.c:5255 int olddfd, const char *oldname, int newdfd, const char *newname, unsigned int flags
324// pub unsafe fn seccomp __x64_sys_seccomp kernel/seccomp.c:2089 SECCOMP unsigned int op, unsigned int flags, void *uargs
325// pub unsafe fn getrandom __x64_sys_getrandom drivers/char/random.c:1388 char *ubuf, size_t len, unsigned int flags
326// pub unsafe fn memfd_create __x64_sys_memfd_create mm/memfd.c:330 MEMFD_CREATE const char *uname, unsigned int flags
327// pub unsafe fn kexec_file_load __x64_sys_kexec_file_load kernel/kexec_file.c:332 KEXEC_FILE int kernel_fd, int initrd_fd, unsigned long cmdline_len, const char *cmdline_ptr, unsigned long flags
328// pub unsafe fn bpf __x64_sys_bpf kernel/bpf/syscall.c:5895 BPF_SYSCALL int cmd, union bpf_attr *uattr, unsigned int size
329// pub unsafe fn execveat __x64_sys_execveat fs/exec.c:2102 int fd, const char *filename, const char *const *argv, const char *const *envp, int flags
330// pub unsafe fn userfaultfd __x64_sys_userfaultfd fs/userfaultfd.c:2155 USERFAULTFD int flags
331// pub unsafe fn membarrier __x64_sys_membarrier kernel/sched/membarrier.c:625 MEMBARRIER int cmd, unsigned int flags, int cpu_id
332// pub unsafe fn mlock2 __x64_sys_mlock2 mm/mlock.c:664 MMU unsigned long start, size_t len, int flags
333// pub unsafe fn copy_file_range __x64_sys_copy_file_range fs/read_write.c:1637 int fd_in, loff_t *off_in, int fd_out, loff_t *off_out, size_t len, unsigned int flags
334// pub unsafe fn preadv2 __x64_sys_preadv2 fs/read_write.c:1175 unsigned long fd, const struct iovec *vec, unsigned long vlen, unsigned long pos_l, unsigned long pos_h, rwf_t flags
335// pub unsafe fn pwritev2 __x64_sys_pwritev2 fs/read_write.c:1195 unsigned long fd, const struct iovec *vec, unsigned long vlen, unsigned long pos_l, unsigned long pos_h, rwf_t flags
336// pub unsafe fn pkey_mprotect __x64_sys_pkey_mprotect mm/mprotect.c:866 X86_INTEL_MEMORY_PROTECTION_KEYS unsigned long start, size_t len, unsigned long prot, int pkey
337// pub unsafe fn pkey_alloc __x64_sys_pkey_alloc mm/mprotect.c:872 X86_INTEL_MEMORY_PROTECTION_KEYS unsigned long flags, unsigned long init_val
338// pub unsafe fn pkey_free __x64_sys_pkey_free mm/mprotect.c:902 X86_INTEL_MEMORY_PROTECTION_KEYS int pkey
339// pub unsafe fn statx __x64_sys_statx fs/stat.c:796 int dfd, const char *filename, unsigned flags, unsigned int mask, struct statx *buffer
340// pub unsafe fn io_pgetevents __x64_sys_io_pgetevents fs/aio.c:2275 AIO aio_context_t ctx_id, long min_nr, long nr, struct io_event *events, struct __kernel_timespec *timeout, const struct __aio_sigset *usig
341// pub unsafe fn rseq __x64_sys_rseq kernel/rseq.c:365 RSEQ struct rseq *rseq, u32 rseq_len, int flags, u32 sig
342// pub unsafe fn uretprobe __x64_sys_uretprobe arch/x86/kernel/uprobes.c:367 void
343// pub unsafe fn pidfd_send_signal __x64_sys_pidfd_send_signal kernel/signal.c:4026 int pidfd, int sig, siginfo_t *info, unsigned int flags
344// pub unsafe fn io_uring_setup __x64_sys_io_uring_setup io_uring/io_uring.c:3828 IO_URING u32 entries, struct io_uring_params *params
345// pub unsafe fn io_uring_enter __x64_sys_io_uring_enter io_uring/io_uring.c:3326 IO_URING unsigned int fd, u32 to_submit, u32 min_complete, u32 flags, const void *argp, size_t argsz
346// pub unsafe fn io_uring_register __x64_sys_io_uring_register io_uring/register.c:897 IO_URING unsigned int fd, unsigned int opcode, void *arg, unsigned int nr_args
347// pub unsafe fn open_tree __x64_sys_open_tree fs/namespace.c:2843 int dfd, const char *filename, unsigned flags
348// pub unsafe fn move_mount __x64_sys_move_mount fs/namespace.c:4230 int from_dfd, const char *from_pathname, int to_dfd, const char *to_pathname, unsigned int flags
349// pub unsafe fn fsopen __x64_sys_fsopen fs/fsopen.c:114 const char *_fs_name, unsigned int flags
350// pub unsafe fn fsconfig __x64_sys_fsconfig fs/fsopen.c:344 int fd, unsigned int cmd, const char *_key, const void *_value, int aux
351// pub unsafe fn fsmount __x64_sys_fsmount fs/namespace.c:4106 int fs_fd, unsigned int flags, unsigned int attr_flags
352// pub unsafe fn fspick __x64_sys_fspick fs/fsopen.c:157 int dfd, const char *path, unsigned int flags
353// pub unsafe fn pidfd_open __x64_sys_pidfd_open kernel/pid.c:626 pid_t pid, unsigned int flags
354// pub unsafe fn clone3 __x64_sys_clone3 kernel/fork.c:3089 struct clone_args *uargs, size_t size
355// pub unsafe fn close_range __x64_sys_close_range fs/file.c:769 unsigned int fd, unsigned int max_fd, unsigned int flags
356// pub unsafe fn openat2 __x64_sys_openat2 fs/open.c:1436 int dfd, const char *filename, struct open_how *how, size_t usize
357// pub unsafe fn pidfd_getfd __x64_sys_pidfd_getfd kernel/pid.c:743 int pidfd, int fd, unsigned int flags
358// pub unsafe fn faccessat2 __x64_sys_faccessat2 fs/open.c:536 int dfd, const char *filename, int mode, int flags
359// pub unsafe fn process_madvise __x64_sys_process_madvise mm/madvise.c:1742 ADVISE_SYSCALLS int pidfd, const struct iovec *vec, size_t vlen, int behavior, unsigned int flags
360// pub unsafe fn epoll_pwait2 __x64_sys_epoll_pwait2 fs/eventpoll.c:2532 EPOLL int epfd, struct epoll_event *events, int maxevents, const struct __kernel_timespec *timeout, const sigset_t *sigmask, size_t sigsetsize
361// pub unsafe fn mount_setattr __x64_sys_mount_setattr fs/namespace.c:4797 int dfd, const char *path, unsigned int flags, struct mount_attr *uattr, size_t usize
362// pub unsafe fn quotactl_fd __x64_sys_quotactl_fd fs/quota/quota.c:973 QUOTACTL unsigned int fd, unsigned int cmd, qid_t id, void *addr
363// pub unsafe fn landlock_create_ruleset __x64_sys_landlock_create_ruleset security/landlock/syscalls.c:179 SECURITY_LANDLOCK const struct landlock_ruleset_attr *const attr, const size_t size, const __u32 flags
364// pub unsafe fn landlock_add_rule __x64_sys_landlock_add_rule security/landlock/syscalls.c:397 SECURITY_LANDLOCK const int ruleset_fd, const enum landlock_rule_type rule_type, const void *const rule_attr, const __u32 flags
365// pub unsafe fn landlock_restrict_self __x64_sys_landlock_restrict_self security/landlock/syscalls.c:456 SECURITY_LANDLOCK const int ruleset_fd, const __u32 flags
366// pub unsafe fn memfd_secret __x64_sys_memfd_secret mm/secretmem.c:233 SECRETMEM unsigned int flags
367// pub unsafe fn process_mrelease __x64_sys_process_mrelease mm/oom_kill.c:1198 MMU int pidfd, unsigned int flags
368// pub unsafe fn futex_waitv __x64_sys_futex_waitv kernel/futex/syscalls.c:290 FUTEX struct futex_waitv *waiters, unsigned int nr_futexes, unsigned int flags, struct __kernel_timespec *timeout, clockid_t clockid
369// pub unsafe fn set_mempolicy_home_node __x64_sys_set_mempolicy_home_node mm/mempolicy.c:1540 NUMA unsigned long start, unsigned long len, unsigned long home_node, unsigned long flags
370// pub unsafe fn cachestat __x64_sys_cachestat mm/filemap.c:4412 CACHESTAT_SYSCALL unsigned int fd, struct cachestat_range *cstat_range, struct cachestat *cstat, unsigned int flags
371// pub unsafe fn fchmodat2 __x64_sys_fchmodat2 fs/open.c:696 int dfd, const char *filename, umode_t mode, unsigned int flags
372// pub unsafe fn map_shadow_stack __x64_sys_map_shadow_stack arch/x86/kernel/shstk.c:505 X86_USER_SHADOW_STACK unsigned long addr, unsigned long size, unsigned int flags
373// pub unsafe fn futex_wake __x64_sys_futex_wake kernel/futex/syscalls.c:338 FUTEX void *uaddr, unsigned long mask, int nr, unsigned int flags
374// pub unsafe fn futex_wait __x64_sys_futex_wait kernel/futex/syscalls.c:370 FUTEX void *uaddr, unsigned long val, unsigned long mask, unsigned int flags, struct __kernel_timespec *timeout, clockid_t clockid
375// pub unsafe fn futex_requeue __x64_sys_futex_requeue kernel/futex/syscalls.c:414 FUTEX struct futex_waitv *waiters, unsigned int flags, int nr_wake, int nr_requeue
376// pub unsafe fn statmount __x64_sys_statmount fs/namespace.c:5448 const struct mnt_id_req *req, struct statmount *buf, size_t bufsize, unsigned int flags
377// pub unsafe fn listmount __x64_sys_listmount fs/namespace.c:5555 const struct mnt_id_req *req, u64 *mnt_ids, size_t nr_mnt_ids, unsigned int flags
378// pub unsafe fn lsm_get_self_attr __x64_sys_lsm_get_self_attr security/lsm_syscalls.c:77 SECURITY unsigned int attr, struct lsm_ctx *ctx, u32 *size, u32 flags
379// pub unsafe fn lsm_set_self_attr __x64_sys_lsm_set_self_attr security/lsm_syscalls.c:55 SECURITY unsigned int attr, struct lsm_ctx *ctx, u32 size, u32 flags
380// pub unsafe fn lsm_list_modules __x64_sys_lsm_list_modules security/lsm_syscalls.c:96 SECURITY u64 *ids, u32 *size, u32 flags
381// pub unsafe fn mseal __x64_sys_mseal mm/mseal.c:265 unsigned long start, size_t len, unsigned long flags
382// pub unsafe fn setxattrat __x64_sys_setxattrat fs/xattr.c:719 int dfd, const char *pathname, unsigned int at_flags, const char *name, const struct xattr_args *uargs, size_t usize
383// pub unsafe fn getxattrat __x64_sys_getxattrat fs/xattr.c:863 int dfd, const char *pathname, unsigned int at_flags, const char *name, struct xattr_args *uargs, size_t usize
384// pub unsafe fn listxattrat __x64_sys_listxattrat fs/xattr.c:991 int dfd, const char *pathname, unsigned int at_flags, char *list, size_t size
385// pub unsafe fn removexattrat __x64_sys_removexattrat fs/xattr.c:1091 int dfd, const char *pathname, unsigned int at_flags, const char *name