Run the following against a copy of the Linux source tree to for a C syntax listing of all syscall signatures:
grep -A7 -hrEe '^SYSCALL_DEFINE[0-9][\(]' block/ crypto/ fs/ init/ io_uring/ ipc/ kernel/ lib/ mm/ rust/ net/ security/ usr/ virt/ | tr '\n' ' ' | sed -Ee 's/SYSCALL_DEFINE[0-9]\(([^,)]*)[, ]*/\nlong \1\(/g;s/[\)][^\n]*/\);/g;s/([^,\(\n]+)[,]([^,\)\n]+)([,)])[ \t]*/\1 \2\3/g;s/[ \t]+/ /g;s/$/\n/g;s/ [\*] / */g'|sed -Ee '/\-\-[ \t]*$/d'|sort -rt '(' -uk 1,1|sort|grep -vEe 'time32[\(]|__old_kernel|__kernel_old'
Running this against the latest 6.15.0-rc1 gives me:
long accept(int fd,struct sockaddr __user *upeer_sockaddr,int __user *upeer_addrlen);
long accept4(int fd,struct sockaddr __user *upeer_sockaddr,int __user *upeer_addrlen,int flags);
long access(const char __user *filename,int mode);
long acct(const char __user *name);
long add_key(const char __user *_type,const char __user *_description,const void __user *_payload,size_t plen,key_serial_t ringid);
long adjtimex(struct __kernel_timex __user *txc_p);
long alarm(unsigned int seconds);
long bind(int fd,struct sockaddr __user *umyaddr,int addrlen);
long bpf(int cmd,union bpf_attr __user *uattr,unsigned int size);
long brk(unsigned long brk);
long cachestat(unsigned int fd,struct cachestat_range __user *cstat_range,struct cachestat __user *cstat,unsigned int flags);
long capget(cap_user_header_t header,cap_user_data_t dataptr);
long capset(cap_user_header_t header,const cap_user_data_t data);
long chdir(const char __user *filename);
long chmod(const char __user *filename,umode_t mode);
long chown(const char __user *filename,uid_t user,gid_t group);
long chown16(const char __user *filename,old_uid_t user,old_gid_t group);
long chroot(const char __user *filename);
long clock_adjtime(const clockid_t which_clock,struct __kernel_timex __user *utx);
long clock_getres(const clockid_t which_clock,struct __kernel_timespec __user *tp);
long clock_gettime(const clockid_t which_clock,struct __kernel_timespec __user *tp);
long clock_nanosleep(const clockid_t which_clock,int flags,const struct __kernel_timespec __user *rqtp,struct __kernel_timespec __user *rmtp);
long clock_settime(const clockid_t which_clock,const struct __kernel_timespec __user *tp);
long clone(unsigned long clone_flags,unsigned long newsp,int __user *parent_tidptr,unsigned long tls,int __user *child_tidptr);
long clone3(struct clone_args __user *uargs,size_t size);
long close(unsigned int fd);
long close_range(unsigned int fd,unsigned int max_fd,unsigned int flags);
long connect(int fd,struct sockaddr __user *uservaddr,int addrlen);
long copy_file_range(int fd_in,loff_t __user *off_in,int fd_out,loff_t __user *off_out,size_t len,unsigned int flags);
long creat(const char __user *pathname,umode_t mode);
long delete_module(const char __user *name_user,unsigned int flags);
long dup(unsigned int fildes);
long dup2(unsigned int oldfd,unsigned int newfd);
long dup3(unsigned int oldfd,unsigned int newfd,int flags);
long epoll_create(int size);
long epoll_create1(int flags);
long epoll_ctl(int epfd,int op,int fd,struct epoll_event __user *event);
long epoll_pwait(int epfd,struct epoll_event __user *events,int maxevents,int timeout,const sigset_t __user *sigmask,size_t sigsetsize);
long epoll_pwait2(int epfd,struct epoll_event __user *events,int maxevents,const struct __kernel_timespec __user *timeout,const sigset_t __user *sigmask,size_t sigsetsize);
long epoll_wait(int epfd,struct epoll_event __user *events,int maxevents,int timeout);
long eventfd(unsigned int count);
long eventfd2(unsigned int count,int flags);
long execve( const char __user *filename,const char __user *const __user *argv,const char __user *const __user *envp);
long execveat( int fd,const char __user *filename,const char __user *const __user *argv,const char __user *const __user *envp,int flags);
long exit(int error_code);
long exit_group(int error_code);
long faccessat(int dfd,const char __user *filename,int mode);
long faccessat2(int dfd,const char __user *filename,int mode,int flags);
long fadvise64(int fd,loff_t offset,size_t len,int advice);
long fadvise64_64(int fd,loff_t offset,loff_t len,int advice);
long fallocate(int fd,int mode,loff_t offset,loff_t len);
long fanotify_init(unsigned int flags,unsigned int event_f_flags);
long fanotify_mark(int fanotify_fd,unsigned int flags,__u64 mask,int dfd,const char __user *pathname);
long fchdir(unsigned int fd);
long fchmod(unsigned int fd,umode_t mode);
long fchmodat(int dfd,const char __user *filename,umode_t mode);
long fchmodat2(int dfd,const char __user *filename,umode_t mode,unsigned int flags);
long fchown(unsigned int fd,uid_t user,gid_t group);
long fchown16(unsigned int fd,old_uid_t user,old_gid_t group);
long fchownat(int dfd,const char __user *filename,uid_t user,gid_t group,int flag);
long fcntl(unsigned int fd,unsigned int cmd,unsigned long arg);
long fcntl64(unsigned int fd,unsigned int cmd,unsigned long arg);
long fdatasync(unsigned int fd);
long fgetxattr(int fd,const char __user *name,void __user *value,size_t size);
long finit_module(int fd,const char __user *uargs,int flags);
long flistxattr(int fd,char __user *list,size_t size);
long flock(unsigned int fd,unsigned int cmd);
long fork();
long fremovexattr(int fd,const char __user *name);
long fsconfig( int fd,unsigned int cmd,const char __user *_key,const void __user *_value,int aux);
long fsetxattr(int fd,const char __user *name,const void __user *value,size_t size,int flags);
long fsmount(int fs_fd,unsigned int flags,unsigned int attr_flags);
long fsopen(const char __user *_fs_name,unsigned int flags);
long fspick(int dfd,const char __user *path,unsigned int flags);
long fstat64(unsigned long fd,struct stat64 __user *statbuf);
long fstatat64(int dfd,const char __user *filename,struct stat64 __user *statbuf,int flag);
long fstatfs(unsigned int fd,struct statfs __user *buf);
long fstatfs64(unsigned int fd,size_t sz,struct statfs64 __user *buf);
long fsync(unsigned int fd);
long ftruncate(unsigned int fd,off_t length);
long ftruncate64(unsigned int fd,loff_t length);
long futex(u32 __user *uaddr,int op,u32 val,const struct __kernel_timespec __user *utime,u32 __user *uaddr2,u32 val3);
long futex_requeue( struct futex_waitv __user *waiters,unsigned int flags,int nr_wake,int nr_requeue);
long futex_wait( void __user *uaddr,unsigned long val,unsigned long mask,unsigned int flags,struct __kernel_timespec __user *timeout,clockid_t clockid);
long futex_waitv(struct futex_waitv __user *waiters,unsigned int nr_futexes,unsigned int flags,struct __kernel_timespec __user *timeout,clockid_t clockid);
long futex_wake( void __user *uaddr,unsigned long mask,int nr,unsigned int flags);
long get_mempolicy(int __user *policy,unsigned long __user *nmask,unsigned long maxnode,unsigned long addr,unsigned long flags);
long get_robust_list(int pid,struct robust_list_head __user *__user *head_ptr,size_t __user *len_ptr);
long getcpu(unsigned __user *cpup,unsigned __user *nodep,struct getcpu_cache __user *unused);
long getcwd(char __user *buf,unsigned long size);
long getdents(unsigned int fd,struct linux_dirent __user *dirent,unsigned int count);
long getdents64(unsigned int fd,struct linux_dirent64 __user *dirent,unsigned int count);
long getegid();
long getegid16();
long geteuid();
long geteuid16();
long getgid();
long getgid16();
long getgroups(int gidsetsize,gid_t __user *grouplist);
long getgroups16(int gidsetsize,old_gid_t __user *grouplist);
long gethostname(char __user *name,int len);
long getpeername(int fd,struct sockaddr __user *usockaddr,int __user *usockaddr_len);
long getpgid(pid_t pid);
long getpgrp();
long getpid();
long getppid();
long getpriority(int which,int who);
long getresgid(gid_t __user *rgidp,gid_t __user *egidp,gid_t __user *sgidp);
long getresgid16(old_gid_t __user *rgidp,old_gid_t __user *egidp,old_gid_t __user *sgidp);
long getresuid(uid_t __user *ruidp,uid_t __user *euidp,uid_t __user *suidp);
long getresuid16(old_uid_t __user *ruidp,old_uid_t __user *euidp,old_uid_t __user *suidp);
long getrlimit(unsigned int resource,struct rlimit __user *rlim);
long getrusage(int who,struct rusage __user *ru);
long getsid(pid_t pid);
long getsockname(int fd,struct sockaddr __user *usockaddr,int __user *usockaddr_len);
long getsockopt(int fd,int level,int optname,char __user *optval,int __user *optlen);
long gettid();
long getuid();
long getuid16();
long getxattr(const char __user *pathname,const char __user *name,void __user *value,size_t size);
long getxattrat(int dfd,const char __user *pathname,unsigned int at_flags,const char __user *name,struct xattr_args __user *uargs,size_t usize);
long init_module(void __user *umod,unsigned long len,const char __user *uargs);
long inotify_add_watch(int fd,const char __user *pathname,u32 mask);
long inotify_init();
long inotify_init1(int flags);
long inotify_rm_watch(int fd,__s32 wd);
long io_cancel(aio_context_t ctx_id,struct iocb __user *iocb,struct io_event __user *result);
long io_destroy(aio_context_t ctx);
long io_getevents(aio_context_t ctx_id,long min_nr,long nr,struct io_event __user *events,struct __kernel_timespec __user *timeout);
long io_pgetevents( aio_context_t ctx_id,long min_nr,long nr,struct io_event __user *events,struct __kernel_timespec __user *timeout,const struct __aio_sigset __user *usig);
long io_setup(unsigned nr_events,aio_context_t __user *ctxp);
long io_submit(aio_context_t ctx_id,long nr,struct iocb __user *__user *iocbpp);
long io_uring_enter(unsigned int fd,u32 to_submit,u32 min_complete,u32 flags,const void __user *argp,size_t argsz);
long io_uring_register(unsigned int fd,unsigned int opcode,void __user *arg,unsigned int nr_args);
long io_uring_setup(u32 entries,struct io_uring_params __user *params);
long ioctl(unsigned int fd,unsigned int cmd,unsigned long arg);
long ioprio_get(int which,int who);
long ioprio_set(int which,int who,int ioprio);
long ipc(unsigned int call,int first,unsigned long second,unsigned long third,void __user *ptr,long fifth);
long kcmp(pid_t pid1,pid_t pid2,int type,unsigned long idx1,unsigned long idx2);
long kexec_file_load(int kernel_fd,int initrd_fd,unsigned long cmdline_len,const char __user *cmdline_ptr,unsigned long flags);
long kexec_load(unsigned long entry,unsigned long nr_segments,struct kexec_segment __user *segments,unsigned long flags);
long keyctl(int option,unsigned long arg2,unsigned long arg3,unsigned long arg4,unsigned long arg5);
long kill(pid_t pid,int sig);
long landlock_add_rule(const int ruleset_fd,const enum landlock_rule_type rule_type,const void __user *const rule_attr,const __u32 flags);
long landlock_create_ruleset( const struct landlock_ruleset_attr __user *const attr,const size_t size,const __u32 flags);
long landlock_restrict_self(const int ruleset_fd,const __u32 flags);
long lchown(const char __user *filename,uid_t user,gid_t group);
long lchown16(const char __user *filename,old_uid_t user,old_gid_t group);
long lgetxattr(const char __user *pathname,const char __user *name,void __user *value,size_t size);
long link(const char __user *oldname,const char __user *newname);
long linkat(int olddfd,const char __user *oldname,int newdfd,const char __user *newname,int flags);
long listen(int fd,int backlog);
long listmount(const struct mnt_id_req __user *req,u64 __user *mnt_ids,size_t nr_mnt_ids,unsigned int flags);
long listxattr(const char __user *pathname,char __user *list,size_t size);
long listxattrat(int dfd,const char __user *pathname,unsigned int at_flags,char __user *list,size_t size);
long llistxattr(const char __user *pathname,char __user *list,size_t size);
long llseek(unsigned int fd,unsigned long offset_high,unsigned long offset_low,loff_t __user *result,unsigned int whence);
long lremovexattr(const char __user *pathname,const char __user *name);
long lseek(unsigned int fd,off_t offset,unsigned int whence);
long lsetxattr(const char __user *pathname,const char __user *name,const void __user *value,size_t size,int flags);
long lsm_get_self_attr(unsigned int attr,struct lsm_ctx __user *ctx,u32 __user *size,u32 flags);
long lsm_list_modules(u64 __user *ids,u32 __user *size,u32 flags);
long lsm_set_self_attr(unsigned int attr,struct lsm_ctx __user *ctx,u32 size,u32 flags);
long lstat64(const char __user *filename,struct stat64 __user *statbuf);
long madvise(unsigned long start,size_t len_in,int behavior);
long mbind(unsigned long start,unsigned long len,unsigned long mode,const unsigned long __user *nmask,unsigned long maxnode,unsigned int flags);
long membarrier(int cmd,unsigned int flags,int cpu_id);
long memfd_create( const char __user *uname,unsigned int flags);
long memfd_secret(unsigned int flags);
long migrate_pages(pid_t pid,unsigned long maxnode,const unsigned long __user *old_nodes,const unsigned long __user *new_nodes);
long mincore(unsigned long start,size_t len,unsigned char __user *vec);
long mkdir(const char __user *pathname,umode_t mode);
long mkdirat(int dfd,const char __user *pathname,umode_t mode);
long mknod(const char __user *filename,umode_t mode,unsigned dev);
long mknodat(int dfd,const char __user *filename,umode_t mode,unsigned int dev);
long mlock(unsigned long start,size_t len);
long mlock2(unsigned long start,size_t len,int flags);
long mlockall(int flags);
long mmap_pgoff(unsigned long addr,unsigned long len,unsigned long prot,unsigned long flags,unsigned long fd,unsigned long pgoff);
long mount(char __user *dev_name,char __user *dir_name,char __user *type,unsigned long flags,void __user *data);
long mount_setattr(int dfd,const char __user *path,unsigned int flags,struct mount_attr __user *uattr,size_t usize);
long move_mount( int from_dfd,const char __user *from_pathname,int to_dfd,const char __user *to_pathname,unsigned int flags);
long move_pages(pid_t pid,unsigned long nr_pages,const void __user *__user *pages,const int __user *nodes,int __user *status,int flags);
long mprotect(unsigned long start,size_t len,unsigned long prot);
long mq_getsetattr(mqd_t mqdes,const struct mq_attr __user *u_mqstat,struct mq_attr __user *u_omqstat);
long mq_notify(mqd_t mqdes,const struct sigevent __user *u_notification);
long mq_open(const char __user *u_name,int oflag,umode_t mode,struct mq_attr __user *u_attr);
long mq_timedreceive(mqd_t mqdes,char __user *u_msg_ptr,size_t msg_len,unsigned int __user *u_msg_prio,const struct __kernel_timespec __user *u_abs_timeout);
long mq_timedsend(mqd_t mqdes,const char __user *u_msg_ptr,size_t msg_len,unsigned int msg_prio,const struct __kernel_timespec __user *u_abs_timeout);
long mq_unlink(const char __user *u_name);
long mremap(unsigned long addr,unsigned long old_len,unsigned long new_len,unsigned long flags,unsigned long new_addr);
long mseal(unsigned long start,size_t len,unsigned long flags);
long msgctl(int msqid,int cmd,struct msqid_ds __user *buf);
long msgget(key_t key,int msgflg);
long msgrcv(int msqid,struct msgbuf __user *msgp,size_t msgsz,long msgtyp,int msgflg);
long msgsnd(int msqid,struct msgbuf __user *msgp,size_t msgsz,int msgflg);
long msync(unsigned long start,size_t len,int flags);
long munlock(unsigned long start,size_t len);
long munlockall();
long munmap(unsigned long addr,size_t len);
long name_to_handle_at(int dfd,const char __user *name,struct file_handle __user *handle,void __user *mnt_id,int flag);
long nanosleep(struct __kernel_timespec __user *rqtp,struct __kernel_timespec __user *rmtp);
long newfstat(unsigned int fd,struct stat __user *statbuf);
long newfstatat(int dfd,const char __user *filename,struct stat __user *statbuf,int flag);
long newlstat(const char __user *filename,struct stat __user *statbuf);
long newstat(const char __user *filename,struct stat __user *statbuf);
long newuname(struct new_utsname __user *name);
long nice(int increment);
long old_getrlimit(unsigned int resource,struct rlimit __user *rlim);
long old_mmap(struct mmap_arg_struct __user *arg);
long old_msgctl(int msqid,int cmd,struct msqid_ds __user *buf);
long old_readdir(unsigned int fd,struct old_linux_dirent __user *dirent,unsigned int count);
long old_select(struct sel_arg_struct __user *arg);
long old_semctl(int semid,int semnum,int cmd,unsigned long arg);
long old_shmctl(int shmid,int cmd,struct shmid_ds __user *buf);
long oldumount(char __user *name);
long olduname(struct oldold_utsname __user *name);
long open(const char __user *filename,int flags,umode_t mode);
long open_by_handle_at(int mountdirfd,struct file_handle __user *handle,int flags);
long open_tree(int dfd,const char __user *filename,unsigned flags);
long open_tree_attr(int dfd,const char __user *filename,unsigned flags,struct mount_attr __user *uattr,size_t usize);
long openat(int dfd,const char __user *filename,int flags,umode_t mode);
long openat2(int dfd,const char __user *filename,struct open_how __user *how,size_t usize);
long pause();
long perf_event_open( struct perf_event_attr __user *attr_uptr,pid_t pid,int cpu,int group_fd,unsigned long flags);
long personality(unsigned int personality);
long pidfd_getfd(int pidfd,int fd,unsigned int flags);
long pidfd_open(pid_t pid,unsigned int flags);
long pidfd_send_signal(int pidfd,int sig,siginfo_t __user *info,unsigned int flags);
long pipe(int __user *fildes);
long pipe2(int __user *fildes,int flags);
long pivot_root(const char __user *new_root,const char __user *put_old);
long pkey_alloc(unsigned long flags,unsigned long init_val);
long pkey_free(int pkey);
long pkey_mprotect(unsigned long start,size_t len,unsigned long prot,int pkey);
long poll(struct pollfd __user *ufds,unsigned int nfds,int timeout_msecs);
long ppoll(struct pollfd __user *ufds,unsigned int nfds,struct __kernel_timespec __user *tsp,const sigset_t __user *sigmask,size_t sigsetsize);
long prctl(int option,unsigned long arg2,unsigned long arg3,unsigned long arg4,unsigned long arg5);
long pread64(unsigned int fd,char __user *buf,size_t count,loff_t pos);
long preadv(unsigned long fd,const struct iovec __user *vec,unsigned long vlen,unsigned long pos_l,unsigned long pos_h);
long preadv2(unsigned long fd,const struct iovec __user *vec,unsigned long vlen,unsigned long pos_l,unsigned long pos_h,rwf_t flags);
long prlimit64(pid_t pid,unsigned int resource,const struct rlimit64 __user *new_rlim,struct rlimit64 __user *old_rlim);
long process_madvise(int pidfd,const struct iovec __user *vec,size_t vlen,int behavior,unsigned int flags);
long process_mrelease(int pidfd,unsigned int flags);
long process_vm_readv(pid_t pid,const struct iovec __user *lvec,unsigned long liovcnt,const struct iovec __user *rvec,unsigned long riovcnt,unsigned long flags);
long process_vm_writev(pid_t pid,const struct iovec __user *lvec,unsigned long liovcnt,const struct iovec __user *rvec,unsigned long riovcnt,unsigned long flags);
long pselect6(int n,fd_set __user *inp,fd_set __user *outp,fd_set __user *exp,struct __kernel_timespec __user *tsp,void __user *sig);
long ptrace(long request,long pid,unsigned long addr,unsigned long data);
long pwrite64(unsigned int fd,const char __user *buf,size_t count,loff_t pos);
long pwritev(unsigned long fd,const struct iovec __user *vec,unsigned long vlen,unsigned long pos_l,unsigned long pos_h);
long pwritev2(unsigned long fd,const struct iovec __user *vec,unsigned long vlen,unsigned long pos_l,unsigned long pos_h,rwf_t flags);
long quotactl(unsigned int cmd,const char __user *special,qid_t id,void __user *addr);
long quotactl_fd(unsigned int fd,unsigned int cmd,qid_t id,void __user *addr);
long read(unsigned int fd,char __user *buf,size_t count);
long readahead(int fd,loff_t offset,size_t count);
long readlink(const char __user *path,char __user *buf,int bufsiz);
long readlinkat(int dfd,const char __user *pathname,char __user *buf,int bufsiz);
long readv(unsigned long fd,const struct iovec __user *vec,unsigned long vlen);
long reboot(int magic1,int magic2,unsigned int cmd,void __user *arg);
long recv(int fd,void __user *ubuf,size_t size,unsigned int flags);
long recvfrom(int fd,void __user *ubuf,size_t size,unsigned int flags,struct sockaddr __user *addr,int __user *addr_len);
long recvmmsg(int fd,struct mmsghdr __user *mmsg,unsigned int vlen,unsigned int flags,struct __kernel_timespec __user *timeout);
long recvmsg(int fd,struct user_msghdr __user *msg,unsigned int flags);
long remap_file_pages(unsigned long start,unsigned long size,unsigned long prot,unsigned long pgoff,unsigned long flags);
long removexattr(const char __user *pathname,const char __user *name);
long removexattrat(int dfd,const char __user *pathname,unsigned int at_flags,const char __user *name);
long rename(const char __user *oldname,const char __user *newname);
long renameat(int olddfd,const char __user *oldname,int newdfd,const char __user *newname);
long renameat2(int olddfd,const char __user *oldname,int newdfd,const char __user *newname,unsigned int flags);
long request_key(const char __user *_type,const char __user *_description,const char __user *_callout_info,key_serial_t destringid);
long restart_syscall();
long rmdir(const char __user *pathname);
long rseq(struct rseq __user *rseq,u32 rseq_len,int flags,u32 sig);
long rt_sigaction(int sig,const struct sigaction __user *act,struct sigaction __user *oact,size_t sigsetsize);
long rt_sigpending(sigset_t __user *uset,size_t sigsetsize);
long rt_sigprocmask(int how,sigset_t __user *nset,sigset_t __user *oset,size_t sigsetsize);
long rt_sigqueueinfo(pid_t pid,int sig,siginfo_t __user *uinfo);
long rt_sigsuspend(sigset_t __user *unewset,size_t sigsetsize);
long rt_sigtimedwait(const sigset_t __user *uthese,siginfo_t __user *uinfo,const struct __kernel_timespec __user *uts,size_t sigsetsize);
long rt_tgsigqueueinfo(pid_t tgid,pid_t pid,int sig,siginfo_t __user *uinfo);
long sched_get_priority_max(int policy);
long sched_get_priority_min(int policy);
long sched_getaffinity(pid_t pid,unsigned int len,unsigned long __user *user_mask_ptr);
long sched_getattr(pid_t pid,struct sched_attr __user *uattr,unsigned int usize,unsigned int flags);
long sched_getparam(pid_t pid,struct sched_param __user *param);
long sched_getscheduler(pid_t pid);
long sched_rr_get_interval(pid_t pid,struct __kernel_timespec __user *interval);
long sched_setaffinity(pid_t pid,unsigned int len,unsigned long __user *user_mask_ptr);
long sched_setattr(pid_t pid,struct sched_attr __user *uattr,unsigned int flags);
long sched_setparam(pid_t pid,struct sched_param __user *param);
long sched_setscheduler(pid_t pid,int policy,struct sched_param __user *param);
long sched_yield();
long seccomp(unsigned int op,unsigned int flags,void __user *uargs);
long semctl(int semid,int semnum,int cmd,unsigned long arg);
long semget(key_t key,int nsems,int semflg);
long semop(int semid,struct sembuf __user *tsops,unsigned nsops);
long semtimedop(int semid,struct sembuf __user *tsops,unsigned int nsops,const struct __kernel_timespec __user *timeout);
long send(int fd,void __user *buff,size_t len,unsigned int flags);
long sendfile(int out_fd,int in_fd,off_t __user *offset,size_t count);
long sendfile64(int out_fd,int in_fd,loff_t __user *offset,size_t count);
long sendmmsg(int fd,struct mmsghdr __user *mmsg,unsigned int vlen,unsigned int flags);
long sendmsg(int fd,struct user_msghdr __user *msg,unsigned int flags);
long sendto(int fd,void __user *buff,size_t len,unsigned int flags,struct sockaddr __user *addr,int addr_len);
long set_mempolicy(int mode,const unsigned long __user *nmask,unsigned long maxnode);
long set_mempolicy_home_node(unsigned long start,unsigned long len,unsigned long home_node,unsigned long flags);
long set_robust_list(struct robust_list_head __user *head,size_t len);
long set_tid_address(int __user *tidptr);
long setdomainname(char __user *name,int len);
long setfsgid(gid_t gid);
long setfsgid16(old_gid_t gid);
long setfsuid(uid_t uid);
long setfsuid16(old_uid_t uid);
long setgid(gid_t gid);
long setgid16(old_gid_t gid);
long setgroups(int gidsetsize,gid_t __user *grouplist);
long setgroups16(int gidsetsize,old_gid_t __user *grouplist);
long sethostname(char __user *name,int len);
long setns(int fd,int flags);
long setpgid(pid_t pid,pid_t pgid);
long setpriority(int which,int who,int niceval);
long setregid(gid_t rgid,gid_t egid);
long setregid16(old_gid_t rgid,old_gid_t egid);
long setresgid(gid_t rgid,gid_t egid,gid_t sgid);
long setresgid16(old_gid_t rgid,old_gid_t egid,old_gid_t sgid);
long setresuid(uid_t ruid,uid_t euid,uid_t suid);
long setresuid16(old_uid_t ruid,old_uid_t euid,old_uid_t suid);
long setreuid(uid_t ruid,uid_t euid);
long setreuid16(old_uid_t ruid,old_uid_t euid);
long setrlimit(unsigned int resource,struct rlimit __user *rlim);
long setsid();
long setsockopt(int fd,int level,int optname,char __user *optval,int optlen);
long setuid(uid_t uid);
long setuid16(old_uid_t uid);
long setxattr(const char __user *pathname,const char __user *name,const void __user *value,size_t size,int flags);
long setxattrat(int dfd,const char __user *pathname,unsigned int at_flags,const char __user *name,const struct xattr_args __user *uargs,size_t usize);
long sgetmask();
long shmat(int shmid,char __user *shmaddr,int shmflg);
long shmctl(int shmid,int cmd,struct shmid_ds __user *buf);
long shmdt(char __user *shmaddr);
long shmget(key_t key,size_t size,int shmflg);
long shutdown(int fd,int how);
long sigaction(int sig,const struct old_sigaction __user *act,struct old_sigaction __user *oact);
long sigaltstack(const stack_t __user *uss,stack_t __user *uoss);
long signal(int sig,__sighandler_t handler);
long signalfd(int ufd,sigset_t __user *user_mask,size_t sizemask);
long signalfd4(int ufd,sigset_t __user *user_mask,size_t sizemask,int flags);
long sigpending(old_sigset_t __user *uset);
long sigprocmask(int how,old_sigset_t __user *nset,old_sigset_t __user *oset);
long sigsuspend(old_sigset_t mask);
long socket(int family,int type,int protocol);
long socketcall(int call,unsigned long __user *args);
long socketpair(int family,int type,int protocol,int __user *usockvec);
long splice(int fd_in,loff_t __user *off_in,int fd_out,loff_t __user *off_out,size_t len,unsigned int flags);
long ssetmask(int newmask);
long stat64(const char __user *filename,struct stat64 __user *statbuf);
long statfs(const char __user *pathname,struct statfs __user *buf);
long statfs64(const char __user *pathname,size_t sz,struct statfs64 __user *buf);
long statmount(const struct mnt_id_req __user *req,struct statmount __user *buf,size_t bufsize,unsigned int flags);
long statx( int dfd,const char __user *filename,unsigned flags,unsigned int mask,struct statx __user *buffer);
long swapoff(const char __user *specialfile);
long swapon(const char __user *specialfile,int swap_flags);
long symlink(const char __user *oldname,const char __user *newname);
long symlinkat(const char __user *oldname,int newdfd,const char __user *newname);
long sync();
long sync_file_range(int fd,loff_t offset,loff_t nbytes,unsigned int flags);
long sync_file_range2(int fd,unsigned int flags,loff_t offset,loff_t nbytes);
long syncfs(int fd);
long sysfs(int option,unsigned long arg1,unsigned long arg2);
long sysinfo(struct sysinfo __user *info);
long syslog(int type,char __user *buf,int len);
long tee(int fdin,int fdout,size_t len,unsigned int flags);
long tgkill(pid_t tgid,pid_t pid,int sig);
long timer_create(const clockid_t which_clock,struct sigevent __user *timer_event_spec,timer_t __user *created_timer_id);
long timer_delete(timer_t timer_id);
long timer_getoverrun(timer_t timer_id);
long timer_gettime(timer_t timer_id,struct __kernel_itimerspec __user *setting);
long timer_settime(timer_t timer_id,int flags,const struct __kernel_itimerspec __user *new_setting,struct __kernel_itimerspec __user *old_setting);
long timerfd_create(int clockid,int flags);
long timerfd_gettime(int ufd,struct __kernel_itimerspec __user *otmr);
long timerfd_settime(int ufd,int flags,const struct __kernel_itimerspec __user *utmr,struct __kernel_itimerspec __user *otmr);
long times(struct tms __user *tbuf);
long tkill(pid_t pid,int sig);
long truncate(const char __user *path,long length);
long truncate64(const char __user *path,loff_t length);
long umask(int mask);
long umount(char __user *name,int flags);
long uname(struct old_utsname __user *name);
long unlink(const char __user *pathname);
long unlinkat(int dfd,const char __user *pathname,int flag);
long unshare(unsigned long unshare_flags);
long uselib(const char __user *library);
long userfaultfd(int flags);
long ustat(unsigned dev,struct ustat __user *ubuf);
long utime(char __user *filename,struct utimbuf __user *times);
long utimensat(int dfd,const char __user *filename,struct __kernel_timespec __user *utimes,int flags);
long vfork();
long vhangup();
long vmsplice(int fd,const struct iovec __user *uiov,unsigned long nr_segs,unsigned int flags);
long wait4(pid_t upid,int __user *stat_addr,int options,struct rusage __user *ru);
long waitid(int which,pid_t upid,struct siginfo __user *infop,int options,struct rusage __user *ru);
long waitpid(pid_t pid,int __user *stat_addr,int options);
long write(unsigned int fd,const char __user *buf,size_t count);
long writev(unsigned long fd,const struct iovec __user *vec,unsigned long vlen);
For the syscall numbers, I think Zzz0_0’s answer is perfect: https://filippo.io/linux-syscall-table/
open().sys_open()has exactly 3 arguments.