summaryrefslogtreecommitdiffstats
path: root/sys/amd64/linux32
diff options
context:
space:
mode:
authordchagin <dchagin@FreeBSD.org>2017-02-22 19:57:59 +0000
committerdchagin <dchagin@FreeBSD.org>2017-02-22 19:57:59 +0000
commit4f4fc7daef6cbb357d082fa0287b1b23423d4752 (patch)
tree96967a2c73039898e0c3066cad5dc73506b86b55 /sys/amd64/linux32
parent92ec30681866a223d5270f3dc95d33458070d317 (diff)
downloadFreeBSD-src-4f4fc7daef6cbb357d082fa0287b1b23423d4752.zip
FreeBSD-src-4f4fc7daef6cbb357d082fa0287b1b23423d4752.tar.gz
MFC r313284:
Update syscall.master to 4.10-rc6. Also fix comments, a typo, and wrong numbering for a few unimplemented syscalls. For 32-bit Linuxulator, socketcall() syscall was historically the entry point for the sockets API. Starting in Linux 4.3, direct syscalls are provided for the sockets API. Enable it. The initial version of patch was provided by trasz@ and extended by me. MFC r313285: Regen after r313284. MFC r313684: Fix r313284. Members of the syscall argument structures are padded to a word size. So, for COMPAT_LINUX32 we should convert user supplied system call arguments which is 32-bit in that case to the array of register_t. MFC r313912: Finish r313684. Convert linux_recv(), linux_send() and linux_accept() system call arguments to the register_t type too.
Diffstat (limited to 'sys/amd64/linux32')
-rw-r--r--sys/amd64/linux32/linux32_dummy.c37
-rw-r--r--sys/amd64/linux32/linux32_proto.h299
-rw-r--r--sys/amd64/linux32/linux32_syscall.h40
-rw-r--r--sys/amd64/linux32/linux32_syscalls.c40
-rw-r--r--sys/amd64/linux32/linux32_sysent.c48
-rw-r--r--sys/amd64/linux32/linux32_systrace_args.c1260
-rw-r--r--sys/amd64/linux32/syscalls.master124
7 files changed, 1805 insertions, 43 deletions
diff --git a/sys/amd64/linux32/linux32_dummy.c b/sys/amd64/linux32/linux32_dummy.c
index 1104651..74e89a9 100644
--- a/sys/amd64/linux32/linux32_dummy.c
+++ b/sys/amd64/linux32/linux32_dummy.c
@@ -114,18 +114,51 @@ DUMMY(inotify_init1);
DUMMY(preadv);
DUMMY(pwritev);
/* linux 2.6.31: */
-DUMMY(rt_tsigqueueinfo);
+DUMMY(rt_tgsigqueueinfo);
DUMMY(perf_event_open);
/* linux 2.6.33: */
DUMMY(fanotify_init);
DUMMY(fanotify_mark);
-/* later: */
+/* linux 2.6.39: */
DUMMY(name_to_handle_at);
DUMMY(open_by_handle_at);
DUMMY(clock_adjtime);
+/* linux 3.0: */
DUMMY(setns);
+/* linux 3.2: */
DUMMY(process_vm_readv);
DUMMY(process_vm_writev);
+/* linux 3.5: */
+DUMMY(kcmp);
+/* linux 3.8: */
+DUMMY(finit_module);
+DUMMY(sched_setattr);
+DUMMY(sched_getattr);
+/* linux 3.14: */
+DUMMY(renameat2);
+/* linux 3.15: */
+DUMMY(seccomp);
+DUMMY(getrandom);
+DUMMY(memfd_create);
+/* linux 3.18: */
+DUMMY(bpf);
+/* linux 3.19: */
+DUMMY(execveat);
+/* linux 4.2: */
+DUMMY(userfaultfd);
+/* linux 4.3: */
+DUMMY(membarrier);
+/* linux 4.4: */
+DUMMY(mlock2);
+/* linux 4.5: */
+DUMMY(copy_file_range);
+/* linux 4.6: */
+DUMMY(preadv2);
+DUMMY(pwritev2);
+/* linux 4.8: */
+DUMMY(pkey_mprotect);
+DUMMY(pkey_alloc);
+DUMMY(pkey_free);
#define DUMMY_XATTR(s) \
int \
diff --git a/sys/amd64/linux32/linux32_proto.h b/sys/amd64/linux32/linux32_proto.h
index 35830ee..a22f17f 100644
--- a/sys/amd64/linux32/linux32_proto.h
+++ b/sys/amd64/linux32/linux32_proto.h
@@ -3,7 +3,7 @@
*
* DO NOT EDIT-- this file is automatically generated.
* $FreeBSD$
- * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 302515 2016-07-10 08:15:50Z dchagin
+ * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 313284 2017-02-05 14:17:09Z dchagin
*/
#ifndef _LINUX32_SYSPROTO_H_
@@ -1103,13 +1103,24 @@ struct linux_inotify_init1_args {
register_t dummy;
};
struct linux_preadv_args {
- register_t dummy;
+ char fd_l_[PADL_(l_ulong)]; l_ulong fd; char fd_r_[PADR_(l_ulong)];
+ char vec_l_[PADL_(struct iovec *)]; struct iovec * vec; char vec_r_[PADR_(struct iovec *)];
+ char vlen_l_[PADL_(l_ulong)]; l_ulong vlen; char vlen_r_[PADR_(l_ulong)];
+ char pos_l_l_[PADL_(l_ulong)]; l_ulong pos_l; char pos_l_r_[PADR_(l_ulong)];
+ char pos_h_l_[PADL_(l_ulong)]; l_ulong pos_h; char pos_h_r_[PADR_(l_ulong)];
};
struct linux_pwritev_args {
- register_t dummy;
-};
-struct linux_rt_tsigqueueinfo_args {
- register_t dummy;
+ char fd_l_[PADL_(l_ulong)]; l_ulong fd; char fd_r_[PADR_(l_ulong)];
+ char vec_l_[PADL_(struct iovec *)]; struct iovec * vec; char vec_r_[PADR_(struct iovec *)];
+ char vlen_l_[PADL_(l_ulong)]; l_ulong vlen; char vlen_r_[PADR_(l_ulong)];
+ char pos_l_l_[PADL_(l_ulong)]; l_ulong pos_l; char pos_l_r_[PADR_(l_ulong)];
+ char pos_h_l_[PADL_(l_ulong)]; l_ulong pos_h; char pos_h_r_[PADR_(l_ulong)];
+};
+struct linux_rt_tgsigqueueinfo_args {
+ char tgid_l_[PADL_(l_pid_t)]; l_pid_t tgid; char tgid_r_[PADR_(l_pid_t)];
+ char tid_l_[PADL_(l_pid_t)]; l_pid_t tid; char tid_r_[PADR_(l_pid_t)];
+ char sig_l_[PADL_(l_int)]; l_int sig; char sig_r_[PADR_(l_int)];
+ char uinfo_l_[PADL_(l_siginfo_t *)]; l_siginfo_t * uinfo; char uinfo_r_[PADR_(l_siginfo_t *)];
};
struct linux_perf_event_open_args {
register_t dummy;
@@ -1155,10 +1166,210 @@ struct linux_setns_args {
register_t dummy;
};
struct linux_process_vm_readv_args {
- register_t dummy;
+ char pid_l_[PADL_(l_pid_t)]; l_pid_t pid; char pid_r_[PADR_(l_pid_t)];
+ char lvec_l_[PADL_(const struct iovec *)]; const struct iovec * lvec; char lvec_r_[PADR_(const struct iovec *)];
+ char liovcnt_l_[PADL_(l_ulong)]; l_ulong liovcnt; char liovcnt_r_[PADR_(l_ulong)];
+ char rvec_l_[PADL_(const struct iovec *)]; const struct iovec * rvec; char rvec_r_[PADR_(const struct iovec *)];
+ char riovcnt_l_[PADL_(l_ulong)]; l_ulong riovcnt; char riovcnt_r_[PADR_(l_ulong)];
+ char flags_l_[PADL_(l_ulong)]; l_ulong flags; char flags_r_[PADR_(l_ulong)];
};
struct linux_process_vm_writev_args {
- register_t dummy;
+ char pid_l_[PADL_(l_pid_t)]; l_pid_t pid; char pid_r_[PADR_(l_pid_t)];
+ char lvec_l_[PADL_(const struct iovec *)]; const struct iovec * lvec; char lvec_r_[PADR_(const struct iovec *)];
+ char liovcnt_l_[PADL_(l_ulong)]; l_ulong liovcnt; char liovcnt_r_[PADR_(l_ulong)];
+ char rvec_l_[PADL_(const struct iovec *)]; const struct iovec * rvec; char rvec_r_[PADR_(const struct iovec *)];
+ char riovcnt_l_[PADL_(l_ulong)]; l_ulong riovcnt; char riovcnt_r_[PADR_(l_ulong)];
+ char flags_l_[PADL_(l_ulong)]; l_ulong flags; char flags_r_[PADR_(l_ulong)];
+};
+struct linux_kcmp_args {
+ char pid1_l_[PADL_(l_pid_t)]; l_pid_t pid1; char pid1_r_[PADR_(l_pid_t)];
+ char pid2_l_[PADL_(l_pid_t)]; l_pid_t pid2; char pid2_r_[PADR_(l_pid_t)];
+ char type_l_[PADL_(l_int)]; l_int type; char type_r_[PADR_(l_int)];
+ char idx1_l_[PADL_(l_ulong)]; l_ulong idx1; char idx1_r_[PADR_(l_ulong)];
+ char idx_l_[PADL_(l_ulong)]; l_ulong idx; char idx_r_[PADR_(l_ulong)];
+};
+struct linux_finit_module_args {
+ char fd_l_[PADL_(l_int)]; l_int fd; char fd_r_[PADR_(l_int)];
+ char uargs_l_[PADL_(const char *)]; const char * uargs; char uargs_r_[PADR_(const char *)];
+ char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)];
+};
+struct linux_sched_setattr_args {
+ char pid_l_[PADL_(l_pid_t)]; l_pid_t pid; char pid_r_[PADR_(l_pid_t)];
+ char attr_l_[PADL_(void *)]; void * attr; char attr_r_[PADR_(void *)];
+ char flags_l_[PADL_(l_uint)]; l_uint flags; char flags_r_[PADR_(l_uint)];
+};
+struct linux_sched_getattr_args {
+ char pid_l_[PADL_(l_pid_t)]; l_pid_t pid; char pid_r_[PADR_(l_pid_t)];
+ char attr_l_[PADL_(void *)]; void * attr; char attr_r_[PADR_(void *)];
+ char size_l_[PADL_(l_uint)]; l_uint size; char size_r_[PADR_(l_uint)];
+ char flags_l_[PADL_(l_uint)]; l_uint flags; char flags_r_[PADR_(l_uint)];
+};
+struct linux_renameat2_args {
+ char oldfd_l_[PADL_(l_int)]; l_int oldfd; char oldfd_r_[PADR_(l_int)];
+ char oldname_l_[PADL_(const char *)]; const char * oldname; char oldname_r_[PADR_(const char *)];
+ char newfd_l_[PADL_(l_int)]; l_int newfd; char newfd_r_[PADR_(l_int)];
+ char newname_l_[PADL_(const char *)]; const char * newname; char newname_r_[PADR_(const char *)];
+ char flags_l_[PADL_(unsigned int)]; unsigned int flags; char flags_r_[PADR_(unsigned int)];
+};
+struct linux_seccomp_args {
+ char op_l_[PADL_(l_uint)]; l_uint op; char op_r_[PADR_(l_uint)];
+ char flags_l_[PADL_(l_uint)]; l_uint flags; char flags_r_[PADR_(l_uint)];
+ char uargs_l_[PADL_(const char *)]; const char * uargs; char uargs_r_[PADR_(const char *)];
+};
+struct linux_getrandom_args {
+ char buf_l_[PADL_(char *)]; char * buf; char buf_r_[PADR_(char *)];
+ char count_l_[PADL_(l_size_t)]; l_size_t count; char count_r_[PADR_(l_size_t)];
+ char flags_l_[PADL_(l_uint)]; l_uint flags; char flags_r_[PADR_(l_uint)];
+};
+struct linux_memfd_create_args {
+ char uname_ptr_l_[PADL_(const char *)]; const char * uname_ptr; char uname_ptr_r_[PADR_(const char *)];
+ char flags_l_[PADL_(l_uint)]; l_uint flags; char flags_r_[PADR_(l_uint)];
+};
+struct linux_bpf_args {
+ char cmd_l_[PADL_(l_int)]; l_int cmd; char cmd_r_[PADR_(l_int)];
+ char attr_l_[PADL_(void *)]; void * attr; char attr_r_[PADR_(void *)];
+ char size_l_[PADL_(l_uint)]; l_uint size; char size_r_[PADR_(l_uint)];
+};
+struct linux_execveat_args {
+ char dfd_l_[PADL_(l_int)]; l_int dfd; char dfd_r_[PADR_(l_int)];
+ char filename_l_[PADL_(const char *)]; const char * filename; char filename_r_[PADR_(const char *)];
+ char argv_l_[PADL_(const char **)]; const char ** argv; char argv_r_[PADR_(const char **)];
+ char envp_l_[PADL_(const char **)]; const char ** envp; char envp_r_[PADR_(const char **)];
+ char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)];
+};
+struct linux_socket_args {
+ char domain_l_[PADL_(l_int)]; l_int domain; char domain_r_[PADR_(l_int)];
+ char type_l_[PADL_(l_int)]; l_int type; char type_r_[PADR_(l_int)];
+ char protocol_l_[PADL_(l_int)]; l_int protocol; char protocol_r_[PADR_(l_int)];
+};
+struct linux_socketpair_args {
+ char domain_l_[PADL_(l_int)]; l_int domain; char domain_r_[PADR_(l_int)];
+ char type_l_[PADL_(l_int)]; l_int type; char type_r_[PADR_(l_int)];
+ char protocol_l_[PADL_(l_int)]; l_int protocol; char protocol_r_[PADR_(l_int)];
+ char rsv_l_[PADL_(l_uintptr_t)]; l_uintptr_t rsv; char rsv_r_[PADR_(l_uintptr_t)];
+};
+struct linux_bind_args {
+ char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)];
+ char name_l_[PADL_(l_uintptr_t)]; l_uintptr_t name; char name_r_[PADR_(l_uintptr_t)];
+ char namelen_l_[PADL_(l_int)]; l_int namelen; char namelen_r_[PADR_(l_int)];
+};
+struct linux_connect_args {
+ char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)];
+ char name_l_[PADL_(l_uintptr_t)]; l_uintptr_t name; char name_r_[PADR_(l_uintptr_t)];
+ char namelen_l_[PADL_(l_int)]; l_int namelen; char namelen_r_[PADR_(l_int)];
+};
+struct linux_listen_args {
+ char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)];
+ char backlog_l_[PADL_(l_int)]; l_int backlog; char backlog_r_[PADR_(l_int)];
+};
+struct linux_accept4_args {
+ char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)];
+ char addr_l_[PADL_(l_uintptr_t)]; l_uintptr_t addr; char addr_r_[PADR_(l_uintptr_t)];
+ char namelen_l_[PADL_(l_uintptr_t)]; l_uintptr_t namelen; char namelen_r_[PADR_(l_uintptr_t)];
+ char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)];
+};
+struct linux_getsockopt_args {
+ char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)];
+ char level_l_[PADL_(l_int)]; l_int level; char level_r_[PADR_(l_int)];
+ char optname_l_[PADL_(l_int)]; l_int optname; char optname_r_[PADR_(l_int)];
+ char optval_l_[PADL_(l_uintptr_t)]; l_uintptr_t optval; char optval_r_[PADR_(l_uintptr_t)];
+ char optlen_l_[PADL_(l_uintptr_t)]; l_uintptr_t optlen; char optlen_r_[PADR_(l_uintptr_t)];
+};
+struct linux_setsockopt_args {
+ char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)];
+ char level_l_[PADL_(l_int)]; l_int level; char level_r_[PADR_(l_int)];
+ char optname_l_[PADL_(l_int)]; l_int optname; char optname_r_[PADR_(l_int)];
+ char optval_l_[PADL_(l_uintptr_t)]; l_uintptr_t optval; char optval_r_[PADR_(l_uintptr_t)];
+ char optlen_l_[PADL_(l_int)]; l_int optlen; char optlen_r_[PADR_(l_int)];
+};
+struct linux_getsockname_args {
+ char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)];
+ char addr_l_[PADL_(l_uintptr_t)]; l_uintptr_t addr; char addr_r_[PADR_(l_uintptr_t)];
+ char namelen_l_[PADL_(l_uintptr_t)]; l_uintptr_t namelen; char namelen_r_[PADR_(l_uintptr_t)];
+};
+struct linux_getpeername_args {
+ char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)];
+ char addr_l_[PADL_(l_uintptr_t)]; l_uintptr_t addr; char addr_r_[PADR_(l_uintptr_t)];
+ char namelen_l_[PADL_(l_uintptr_t)]; l_uintptr_t namelen; char namelen_r_[PADR_(l_uintptr_t)];
+};
+struct linux_sendto_args {
+ char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)];
+ char msg_l_[PADL_(l_uintptr_t)]; l_uintptr_t msg; char msg_r_[PADR_(l_uintptr_t)];
+ char len_l_[PADL_(l_int)]; l_int len; char len_r_[PADR_(l_int)];
+ char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)];
+ char to_l_[PADL_(l_uintptr_t)]; l_uintptr_t to; char to_r_[PADR_(l_uintptr_t)];
+ char tolen_l_[PADL_(l_int)]; l_int tolen; char tolen_r_[PADR_(l_int)];
+};
+struct linux_sendmsg_args {
+ char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)];
+ char msg_l_[PADL_(l_uintptr_t)]; l_uintptr_t msg; char msg_r_[PADR_(l_uintptr_t)];
+ char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)];
+};
+struct linux_recvfrom_args {
+ char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)];
+ char buf_l_[PADL_(l_uintptr_t)]; l_uintptr_t buf; char buf_r_[PADR_(l_uintptr_t)];
+ char len_l_[PADL_(l_size_t)]; l_size_t len; char len_r_[PADR_(l_size_t)];
+ char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)];
+ char from_l_[PADL_(l_uintptr_t)]; l_uintptr_t from; char from_r_[PADR_(l_uintptr_t)];
+ char fromlen_l_[PADL_(l_uintptr_t)]; l_uintptr_t fromlen; char fromlen_r_[PADR_(l_uintptr_t)];
+};
+struct linux_recvmsg_args {
+ char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)];
+ char msg_l_[PADL_(l_uintptr_t)]; l_uintptr_t msg; char msg_r_[PADR_(l_uintptr_t)];
+ char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)];
+};
+struct linux_shutdown_args {
+ char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)];
+ char how_l_[PADL_(l_int)]; l_int how; char how_r_[PADR_(l_int)];
+};
+struct linux_userfaultfd_args {
+ char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)];
+};
+struct linux_membarrier_args {
+ char cmd_l_[PADL_(l_int)]; l_int cmd; char cmd_r_[PADR_(l_int)];
+ char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)];
+};
+struct linux_mlock2_args {
+ char start_l_[PADL_(l_ulong)]; l_ulong start; char start_r_[PADR_(l_ulong)];
+ char len_l_[PADL_(l_size_t)]; l_size_t len; char len_r_[PADR_(l_size_t)];
+ char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)];
+};
+struct linux_copy_file_range_args {
+ char fd_in_l_[PADL_(l_int)]; l_int fd_in; char fd_in_r_[PADR_(l_int)];
+ char off_in_l_[PADL_(l_loff_t *)]; l_loff_t * off_in; char off_in_r_[PADR_(l_loff_t *)];
+ char fd_out_l_[PADL_(l_int)]; l_int fd_out; char fd_out_r_[PADR_(l_int)];
+ char off_out_l_[PADL_(l_loff_t *)]; l_loff_t * off_out; char off_out_r_[PADR_(l_loff_t *)];
+ char len_l_[PADL_(l_size_t)]; l_size_t len; char len_r_[PADR_(l_size_t)];
+ char flags_l_[PADL_(l_uint)]; l_uint flags; char flags_r_[PADR_(l_uint)];
+};
+struct linux_preadv2_args {
+ char fd_l_[PADL_(l_ulong)]; l_ulong fd; char fd_r_[PADR_(l_ulong)];
+ char vec_l_[PADL_(const struct iovec *)]; const struct iovec * vec; char vec_r_[PADR_(const struct iovec *)];
+ char vlen_l_[PADL_(l_ulong)]; l_ulong vlen; char vlen_r_[PADR_(l_ulong)];
+ char pos_l_l_[PADL_(l_ulong)]; l_ulong pos_l; char pos_l_r_[PADR_(l_ulong)];
+ char pos_h_l_[PADL_(l_ulong)]; l_ulong pos_h; char pos_h_r_[PADR_(l_ulong)];
+ char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)];
+};
+struct linux_pwritev2_args {
+ char fd_l_[PADL_(l_ulong)]; l_ulong fd; char fd_r_[PADR_(l_ulong)];
+ char vec_l_[PADL_(const struct iovec *)]; const struct iovec * vec; char vec_r_[PADR_(const struct iovec *)];
+ char vlen_l_[PADL_(l_ulong)]; l_ulong vlen; char vlen_r_[PADR_(l_ulong)];
+ char pos_l_l_[PADL_(l_ulong)]; l_ulong pos_l; char pos_l_r_[PADR_(l_ulong)];
+ char pos_h_l_[PADL_(l_ulong)]; l_ulong pos_h; char pos_h_r_[PADR_(l_ulong)];
+ char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)];
+};
+struct linux_pkey_mprotect_args {
+ char start_l_[PADL_(l_ulong)]; l_ulong start; char start_r_[PADR_(l_ulong)];
+ char len_l_[PADL_(l_size_t)]; l_size_t len; char len_r_[PADR_(l_size_t)];
+ char prot_l_[PADL_(l_ulong)]; l_ulong prot; char prot_r_[PADR_(l_ulong)];
+ char pkey_l_[PADL_(l_int)]; l_int pkey; char pkey_r_[PADR_(l_int)];
+};
+struct linux_pkey_alloc_args {
+ char flags_l_[PADL_(l_ulong)]; l_ulong flags; char flags_r_[PADR_(l_ulong)];
+ char init_val_l_[PADL_(l_ulong)]; l_ulong init_val; char init_val_r_[PADR_(l_ulong)];
+};
+struct linux_pkey_free_args {
+ char pkey_l_[PADL_(l_int)]; l_int pkey; char pkey_r_[PADR_(l_int)];
};
#define nosys linux_nosys
int linux_exit(struct thread *, struct linux_exit_args *);
@@ -1424,7 +1635,7 @@ int linux_pipe2(struct thread *, struct linux_pipe2_args *);
int linux_inotify_init1(struct thread *, struct linux_inotify_init1_args *);
int linux_preadv(struct thread *, struct linux_preadv_args *);
int linux_pwritev(struct thread *, struct linux_pwritev_args *);
-int linux_rt_tsigqueueinfo(struct thread *, struct linux_rt_tsigqueueinfo_args *);
+int linux_rt_tgsigqueueinfo(struct thread *, struct linux_rt_tgsigqueueinfo_args *);
int linux_perf_event_open(struct thread *, struct linux_perf_event_open_args *);
int linux_recvmmsg(struct thread *, struct linux_recvmmsg_args *);
int linux_fanotify_init(struct thread *, struct linux_fanotify_init_args *);
@@ -1438,6 +1649,40 @@ int linux_sendmmsg(struct thread *, struct linux_sendmmsg_args *);
int linux_setns(struct thread *, struct linux_setns_args *);
int linux_process_vm_readv(struct thread *, struct linux_process_vm_readv_args *);
int linux_process_vm_writev(struct thread *, struct linux_process_vm_writev_args *);
+int linux_kcmp(struct thread *, struct linux_kcmp_args *);
+int linux_finit_module(struct thread *, struct linux_finit_module_args *);
+int linux_sched_setattr(struct thread *, struct linux_sched_setattr_args *);
+int linux_sched_getattr(struct thread *, struct linux_sched_getattr_args *);
+int linux_renameat2(struct thread *, struct linux_renameat2_args *);
+int linux_seccomp(struct thread *, struct linux_seccomp_args *);
+int linux_getrandom(struct thread *, struct linux_getrandom_args *);
+int linux_memfd_create(struct thread *, struct linux_memfd_create_args *);
+int linux_bpf(struct thread *, struct linux_bpf_args *);
+int linux_execveat(struct thread *, struct linux_execveat_args *);
+int linux_socket(struct thread *, struct linux_socket_args *);
+int linux_socketpair(struct thread *, struct linux_socketpair_args *);
+int linux_bind(struct thread *, struct linux_bind_args *);
+int linux_connect(struct thread *, struct linux_connect_args *);
+int linux_listen(struct thread *, struct linux_listen_args *);
+int linux_accept4(struct thread *, struct linux_accept4_args *);
+int linux_getsockopt(struct thread *, struct linux_getsockopt_args *);
+int linux_setsockopt(struct thread *, struct linux_setsockopt_args *);
+int linux_getsockname(struct thread *, struct linux_getsockname_args *);
+int linux_getpeername(struct thread *, struct linux_getpeername_args *);
+int linux_sendto(struct thread *, struct linux_sendto_args *);
+int linux_sendmsg(struct thread *, struct linux_sendmsg_args *);
+int linux_recvfrom(struct thread *, struct linux_recvfrom_args *);
+int linux_recvmsg(struct thread *, struct linux_recvmsg_args *);
+int linux_shutdown(struct thread *, struct linux_shutdown_args *);
+int linux_userfaultfd(struct thread *, struct linux_userfaultfd_args *);
+int linux_membarrier(struct thread *, struct linux_membarrier_args *);
+int linux_mlock2(struct thread *, struct linux_mlock2_args *);
+int linux_copy_file_range(struct thread *, struct linux_copy_file_range_args *);
+int linux_preadv2(struct thread *, struct linux_preadv2_args *);
+int linux_pwritev2(struct thread *, struct linux_pwritev2_args *);
+int linux_pkey_mprotect(struct thread *, struct linux_pkey_mprotect_args *);
+int linux_pkey_alloc(struct thread *, struct linux_pkey_alloc_args *);
+int linux_pkey_free(struct thread *, struct linux_pkey_free_args *);
#ifdef COMPAT_43
@@ -1736,7 +1981,7 @@ int linux_process_vm_writev(struct thread *, struct linux_process_vm_writev_args
#define LINUX32_SYS_AUE_linux_inotify_init1 AUE_NULL
#define LINUX32_SYS_AUE_linux_preadv AUE_NULL
#define LINUX32_SYS_AUE_linux_pwritev AUE_NULL
-#define LINUX32_SYS_AUE_linux_rt_tsigqueueinfo AUE_NULL
+#define LINUX32_SYS_AUE_linux_rt_tgsigqueueinfo AUE_NULL
#define LINUX32_SYS_AUE_linux_perf_event_open AUE_NULL
#define LINUX32_SYS_AUE_linux_recvmmsg AUE_NULL
#define LINUX32_SYS_AUE_linux_fanotify_init AUE_NULL
@@ -1750,6 +1995,40 @@ int linux_process_vm_writev(struct thread *, struct linux_process_vm_writev_args
#define LINUX32_SYS_AUE_linux_setns AUE_NULL
#define LINUX32_SYS_AUE_linux_process_vm_readv AUE_NULL
#define LINUX32_SYS_AUE_linux_process_vm_writev AUE_NULL
+#define LINUX32_SYS_AUE_linux_kcmp AUE_NULL
+#define LINUX32_SYS_AUE_linux_finit_module AUE_NULL
+#define LINUX32_SYS_AUE_linux_sched_setattr AUE_NULL
+#define LINUX32_SYS_AUE_linux_sched_getattr AUE_NULL
+#define LINUX32_SYS_AUE_linux_renameat2 AUE_NULL
+#define LINUX32_SYS_AUE_linux_seccomp AUE_NULL
+#define LINUX32_SYS_AUE_linux_getrandom AUE_NULL
+#define LINUX32_SYS_AUE_linux_memfd_create AUE_NULL
+#define LINUX32_SYS_AUE_linux_bpf AUE_NULL
+#define LINUX32_SYS_AUE_linux_execveat AUE_NULL
+#define LINUX32_SYS_AUE_linux_socket AUE_SOCKET
+#define LINUX32_SYS_AUE_linux_socketpair AUE_SOCKETPAIR
+#define LINUX32_SYS_AUE_linux_bind AUE_BIND
+#define LINUX32_SYS_AUE_linux_connect AUE_CONNECT
+#define LINUX32_SYS_AUE_linux_listen AUE_LISTEN
+#define LINUX32_SYS_AUE_linux_accept4 AUE_ACCEPT
+#define LINUX32_SYS_AUE_linux_getsockopt AUE_GETSOCKOPT
+#define LINUX32_SYS_AUE_linux_setsockopt AUE_SETSOCKOPT
+#define LINUX32_SYS_AUE_linux_getsockname AUE_GETSOCKNAME
+#define LINUX32_SYS_AUE_linux_getpeername AUE_GETPEERNAME
+#define LINUX32_SYS_AUE_linux_sendto AUE_SENDTO
+#define LINUX32_SYS_AUE_linux_sendmsg AUE_SENDMSG
+#define LINUX32_SYS_AUE_linux_recvfrom AUE_RECVFROM
+#define LINUX32_SYS_AUE_linux_recvmsg AUE_RECVMSG
+#define LINUX32_SYS_AUE_linux_shutdown AUE_NULL
+#define LINUX32_SYS_AUE_linux_userfaultfd AUE_NULL
+#define LINUX32_SYS_AUE_linux_membarrier AUE_NULL
+#define LINUX32_SYS_AUE_linux_mlock2 AUE_NULL
+#define LINUX32_SYS_AUE_linux_copy_file_range AUE_NULL
+#define LINUX32_SYS_AUE_linux_preadv2 AUE_NULL
+#define LINUX32_SYS_AUE_linux_pwritev2 AUE_NULL
+#define LINUX32_SYS_AUE_linux_pkey_mprotect AUE_NULL
+#define LINUX32_SYS_AUE_linux_pkey_alloc AUE_NULL
+#define LINUX32_SYS_AUE_linux_pkey_free AUE_NULL
#undef PAD_
#undef PADL_
diff --git a/sys/amd64/linux32/linux32_syscall.h b/sys/amd64/linux32/linux32_syscall.h
index 862520a..bf653ed 100644
--- a/sys/amd64/linux32/linux32_syscall.h
+++ b/sys/amd64/linux32/linux32_syscall.h
@@ -3,7 +3,7 @@
*
* DO NOT EDIT-- this file is automatically generated.
* $FreeBSD$
- * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 302515 2016-07-10 08:15:50Z dchagin
+ * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 313284 2017-02-05 14:17:09Z dchagin
*/
#define LINUX32_SYS_linux_exit 1
@@ -307,7 +307,7 @@
#define LINUX32_SYS_linux_inotify_init1 332
#define LINUX32_SYS_linux_preadv 333
#define LINUX32_SYS_linux_pwritev 334
-#define LINUX32_SYS_linux_rt_tsigqueueinfo 335
+#define LINUX32_SYS_linux_rt_tgsigqueueinfo 335
#define LINUX32_SYS_linux_perf_event_open 336
#define LINUX32_SYS_linux_recvmmsg 337
#define LINUX32_SYS_linux_fanotify_init 338
@@ -321,4 +321,38 @@
#define LINUX32_SYS_linux_setns 346
#define LINUX32_SYS_linux_process_vm_readv 347
#define LINUX32_SYS_linux_process_vm_writev 348
-#define LINUX32_SYS_MAXSYSCALL 350
+#define LINUX32_SYS_linux_kcmp 349
+#define LINUX32_SYS_linux_finit_module 350
+#define LINUX32_SYS_linux_sched_setattr 351
+#define LINUX32_SYS_linux_sched_getattr 352
+#define LINUX32_SYS_linux_renameat2 353
+#define LINUX32_SYS_linux_seccomp 354
+#define LINUX32_SYS_linux_getrandom 355
+#define LINUX32_SYS_linux_memfd_create 356
+#define LINUX32_SYS_linux_bpf 357
+#define LINUX32_SYS_linux_execveat 358
+#define LINUX32_SYS_linux_socket 359
+#define LINUX32_SYS_linux_socketpair 360
+#define LINUX32_SYS_linux_bind 361
+#define LINUX32_SYS_linux_connect 362
+#define LINUX32_SYS_linux_listen 363
+#define LINUX32_SYS_linux_accept4 364
+#define LINUX32_SYS_linux_getsockopt 365
+#define LINUX32_SYS_linux_setsockopt 366
+#define LINUX32_SYS_linux_getsockname 367
+#define LINUX32_SYS_linux_getpeername 368
+#define LINUX32_SYS_linux_sendto 369
+#define LINUX32_SYS_linux_sendmsg 370
+#define LINUX32_SYS_linux_recvfrom 371
+#define LINUX32_SYS_linux_recvmsg 372
+#define LINUX32_SYS_linux_shutdown 373
+#define LINUX32_SYS_linux_userfaultfd 374
+#define LINUX32_SYS_linux_membarrier 375
+#define LINUX32_SYS_linux_mlock2 376
+#define LINUX32_SYS_linux_copy_file_range 377
+#define LINUX32_SYS_linux_preadv2 378
+#define LINUX32_SYS_linux_pwritev2 379
+#define LINUX32_SYS_linux_pkey_mprotect 380
+#define LINUX32_SYS_linux_pkey_alloc 381
+#define LINUX32_SYS_linux_pkey_free 382
+#define LINUX32_SYS_MAXSYSCALL 384
diff --git a/sys/amd64/linux32/linux32_syscalls.c b/sys/amd64/linux32/linux32_syscalls.c
index d05c4a0..fe18999 100644
--- a/sys/amd64/linux32/linux32_syscalls.c
+++ b/sys/amd64/linux32/linux32_syscalls.c
@@ -3,7 +3,7 @@
*
* DO NOT EDIT-- this file is automatically generated.
* $FreeBSD$
- * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 302515 2016-07-10 08:15:50Z dchagin
+ * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 313284 2017-02-05 14:17:09Z dchagin
*/
const char *linux32_syscallnames[] = {
@@ -343,7 +343,7 @@ const char *linux32_syscallnames[] = {
"linux_inotify_init1", /* 332 = linux_inotify_init1 */
"linux_preadv", /* 333 = linux_preadv */
"linux_pwritev", /* 334 = linux_pwritev */
- "linux_rt_tsigqueueinfo", /* 335 = linux_rt_tsigqueueinfo */
+ "linux_rt_tgsigqueueinfo", /* 335 = linux_rt_tgsigqueueinfo */
"linux_perf_event_open", /* 336 = linux_perf_event_open */
"linux_recvmmsg", /* 337 = linux_recvmmsg */
"linux_fanotify_init", /* 338 = linux_fanotify_init */
@@ -357,5 +357,39 @@ const char *linux32_syscallnames[] = {
"linux_setns", /* 346 = linux_setns */
"linux_process_vm_readv", /* 347 = linux_process_vm_readv */
"linux_process_vm_writev", /* 348 = linux_process_vm_writev */
- "#349", /* 349 = nosys */
+ "linux_kcmp", /* 349 = linux_kcmp */
+ "linux_finit_module", /* 350 = linux_finit_module */
+ "linux_sched_setattr", /* 351 = linux_sched_setattr */
+ "linux_sched_getattr", /* 352 = linux_sched_getattr */
+ "linux_renameat2", /* 353 = linux_renameat2 */
+ "linux_seccomp", /* 354 = linux_seccomp */
+ "linux_getrandom", /* 355 = linux_getrandom */
+ "linux_memfd_create", /* 356 = linux_memfd_create */
+ "linux_bpf", /* 357 = linux_bpf */
+ "linux_execveat", /* 358 = linux_execveat */
+ "linux_socket", /* 359 = linux_socket */
+ "linux_socketpair", /* 360 = linux_socketpair */
+ "linux_bind", /* 361 = linux_bind */
+ "linux_connect", /* 362 = linux_connect */
+ "linux_listen", /* 363 = linux_listen */
+ "linux_accept4", /* 364 = linux_accept4 */
+ "linux_getsockopt", /* 365 = linux_getsockopt */
+ "linux_setsockopt", /* 366 = linux_setsockopt */
+ "linux_getsockname", /* 367 = linux_getsockname */
+ "linux_getpeername", /* 368 = linux_getpeername */
+ "linux_sendto", /* 369 = linux_sendto */
+ "linux_sendmsg", /* 370 = linux_sendmsg */
+ "linux_recvfrom", /* 371 = linux_recvfrom */
+ "linux_recvmsg", /* 372 = linux_recvmsg */
+ "linux_shutdown", /* 373 = linux_shutdown */
+ "linux_userfaultfd", /* 374 = linux_userfaultfd */
+ "linux_membarrier", /* 375 = linux_membarrier */
+ "linux_mlock2", /* 376 = linux_mlock2 */
+ "linux_copy_file_range", /* 377 = linux_copy_file_range */
+ "linux_preadv2", /* 378 = linux_preadv2 */
+ "linux_pwritev2", /* 379 = linux_pwritev2 */
+ "linux_pkey_mprotect", /* 380 = linux_pkey_mprotect */
+ "linux_pkey_alloc", /* 381 = linux_pkey_alloc */
+ "linux_pkey_free", /* 382 = linux_pkey_free */
+ "#383", /* 383 = nosys */
};
diff --git a/sys/amd64/linux32/linux32_sysent.c b/sys/amd64/linux32/linux32_sysent.c
index 73ce67a..9f94ebf 100644
--- a/sys/amd64/linux32/linux32_sysent.c
+++ b/sys/amd64/linux32/linux32_sysent.c
@@ -3,7 +3,7 @@
*
* DO NOT EDIT-- this file is automatically generated.
* $FreeBSD$
- * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 302515 2016-07-10 08:15:50Z dchagin
+ * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 313284 2017-02-05 14:17:09Z dchagin
*/
#include "opt_compat.h"
@@ -352,9 +352,9 @@ struct sysent linux32_sysent[] = {
{ AS(linux_dup3_args), (sy_call_t *)linux_dup3, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 330 = linux_dup3 */
{ AS(linux_pipe2_args), (sy_call_t *)linux_pipe2, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 331 = linux_pipe2 */
{ 0, (sy_call_t *)linux_inotify_init1, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 332 = linux_inotify_init1 */
- { 0, (sy_call_t *)linux_preadv, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 333 = linux_preadv */
- { 0, (sy_call_t *)linux_pwritev, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 334 = linux_pwritev */
- { 0, (sy_call_t *)linux_rt_tsigqueueinfo, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 335 = linux_rt_tsigqueueinfo */
+ { AS(linux_preadv_args), (sy_call_t *)linux_preadv, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 333 = linux_preadv */
+ { AS(linux_pwritev_args), (sy_call_t *)linux_pwritev, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 334 = linux_pwritev */
+ { AS(linux_rt_tgsigqueueinfo_args), (sy_call_t *)linux_rt_tgsigqueueinfo, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 335 = linux_rt_tgsigqueueinfo */
{ 0, (sy_call_t *)linux_perf_event_open, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 336 = linux_perf_event_open */
{ AS(linux_recvmmsg_args), (sy_call_t *)linux_recvmmsg, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 337 = linux_recvmmsg */
{ 0, (sy_call_t *)linux_fanotify_init, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 338 = linux_fanotify_init */
@@ -366,7 +366,41 @@ struct sysent linux32_sysent[] = {
{ AS(linux_syncfs_args), (sy_call_t *)linux_syncfs, AUE_SYNC, NULL, 0, 0, 0, SY_THR_STATIC }, /* 344 = linux_syncfs */
{ AS(linux_sendmmsg_args), (sy_call_t *)linux_sendmmsg, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 345 = linux_sendmmsg */
{ 0, (sy_call_t *)linux_setns, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 346 = linux_setns */
- { 0, (sy_call_t *)linux_process_vm_readv, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 347 = linux_process_vm_readv */
- { 0, (sy_call_t *)linux_process_vm_writev, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 348 = linux_process_vm_writev */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 349 = nosys */
+ { AS(linux_process_vm_readv_args), (sy_call_t *)linux_process_vm_readv, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 347 = linux_process_vm_readv */
+ { AS(linux_process_vm_writev_args), (sy_call_t *)linux_process_vm_writev, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 348 = linux_process_vm_writev */
+ { AS(linux_kcmp_args), (sy_call_t *)linux_kcmp, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 349 = linux_kcmp */
+ { AS(linux_finit_module_args), (sy_call_t *)linux_finit_module, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 350 = linux_finit_module */
+ { AS(linux_sched_setattr_args), (sy_call_t *)linux_sched_setattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 351 = linux_sched_setattr */
+ { AS(linux_sched_getattr_args), (sy_call_t *)linux_sched_getattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 352 = linux_sched_getattr */
+ { AS(linux_renameat2_args), (sy_call_t *)linux_renameat2, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 353 = linux_renameat2 */
+ { AS(linux_seccomp_args), (sy_call_t *)linux_seccomp, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 354 = linux_seccomp */
+ { AS(linux_getrandom_args), (sy_call_t *)linux_getrandom, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 355 = linux_getrandom */
+ { AS(linux_memfd_create_args), (sy_call_t *)linux_memfd_create, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 356 = linux_memfd_create */
+ { AS(linux_bpf_args), (sy_call_t *)linux_bpf, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 357 = linux_bpf */
+ { AS(linux_execveat_args), (sy_call_t *)linux_execveat, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 358 = linux_execveat */
+ { AS(linux_socket_args), (sy_call_t *)linux_socket, AUE_SOCKET, NULL, 0, 0, 0, SY_THR_STATIC }, /* 359 = linux_socket */
+ { AS(linux_socketpair_args), (sy_call_t *)linux_socketpair, AUE_SOCKETPAIR, NULL, 0, 0, 0, SY_THR_STATIC }, /* 360 = linux_socketpair */
+ { AS(linux_bind_args), (sy_call_t *)linux_bind, AUE_BIND, NULL, 0, 0, 0, SY_THR_STATIC }, /* 361 = linux_bind */
+ { AS(linux_connect_args), (sy_call_t *)linux_connect, AUE_CONNECT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 362 = linux_connect */
+ { AS(linux_listen_args), (sy_call_t *)linux_listen, AUE_LISTEN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 363 = linux_listen */
+ { AS(linux_accept4_args), (sy_call_t *)linux_accept4, AUE_ACCEPT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 364 = linux_accept4 */
+ { AS(linux_getsockopt_args), (sy_call_t *)linux_getsockopt, AUE_GETSOCKOPT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 365 = linux_getsockopt */
+ { AS(linux_setsockopt_args), (sy_call_t *)linux_setsockopt, AUE_SETSOCKOPT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 366 = linux_setsockopt */
+ { AS(linux_getsockname_args), (sy_call_t *)linux_getsockname, AUE_GETSOCKNAME, NULL, 0, 0, 0, SY_THR_STATIC }, /* 367 = linux_getsockname */
+ { AS(linux_getpeername_args), (sy_call_t *)linux_getpeername, AUE_GETPEERNAME, NULL, 0, 0, 0, SY_THR_STATIC }, /* 368 = linux_getpeername */
+ { AS(linux_sendto_args), (sy_call_t *)linux_sendto, AUE_SENDTO, NULL, 0, 0, 0, SY_THR_STATIC }, /* 369 = linux_sendto */
+ { AS(linux_sendmsg_args), (sy_call_t *)linux_sendmsg, AUE_SENDMSG, NULL, 0, 0, 0, SY_THR_STATIC }, /* 370 = linux_sendmsg */
+ { AS(linux_recvfrom_args), (sy_call_t *)linux_recvfrom, AUE_RECVFROM, NULL, 0, 0, 0, SY_THR_STATIC }, /* 371 = linux_recvfrom */
+ { AS(linux_recvmsg_args), (sy_call_t *)linux_recvmsg, AUE_RECVMSG, NULL, 0, 0, 0, SY_THR_STATIC }, /* 372 = linux_recvmsg */
+ { AS(linux_shutdown_args), (sy_call_t *)linux_shutdown, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 373 = linux_shutdown */
+ { AS(linux_userfaultfd_args), (sy_call_t *)linux_userfaultfd, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 374 = linux_userfaultfd */
+ { AS(linux_membarrier_args), (sy_call_t *)linux_membarrier, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 375 = linux_membarrier */
+ { AS(linux_mlock2_args), (sy_call_t *)linux_mlock2, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 376 = linux_mlock2 */
+ { AS(linux_copy_file_range_args), (sy_call_t *)linux_copy_file_range, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 377 = linux_copy_file_range */
+ { AS(linux_preadv2_args), (sy_call_t *)linux_preadv2, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 378 = linux_preadv2 */
+ { AS(linux_pwritev2_args), (sy_call_t *)linux_pwritev2, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 379 = linux_pwritev2 */
+ { AS(linux_pkey_mprotect_args), (sy_call_t *)linux_pkey_mprotect, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 380 = linux_pkey_mprotect */
+ { AS(linux_pkey_alloc_args), (sy_call_t *)linux_pkey_alloc, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 381 = linux_pkey_alloc */
+ { AS(linux_pkey_free_args), (sy_call_t *)linux_pkey_free, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 382 = linux_pkey_free */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 383 = nosys */
};
diff --git a/sys/amd64/linux32/linux32_systrace_args.c b/sys/amd64/linux32/linux32_systrace_args.c
index f3bde85..2e4c2be 100644
--- a/sys/amd64/linux32/linux32_systrace_args.c
+++ b/sys/amd64/linux32/linux32_systrace_args.c
@@ -2263,17 +2263,34 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
}
/* linux_preadv */
case 333: {
- *n_args = 0;
+ struct linux_preadv_args *p = params;
+ iarg[0] = p->fd; /* l_ulong */
+ uarg[1] = (intptr_t) p->vec; /* struct iovec * */
+ iarg[2] = p->vlen; /* l_ulong */
+ iarg[3] = p->pos_l; /* l_ulong */
+ iarg[4] = p->pos_h; /* l_ulong */
+ *n_args = 5;
break;
}
/* linux_pwritev */
case 334: {
- *n_args = 0;
+ struct linux_pwritev_args *p = params;
+ iarg[0] = p->fd; /* l_ulong */
+ uarg[1] = (intptr_t) p->vec; /* struct iovec * */
+ iarg[2] = p->vlen; /* l_ulong */
+ iarg[3] = p->pos_l; /* l_ulong */
+ iarg[4] = p->pos_h; /* l_ulong */
+ *n_args = 5;
break;
}
- /* linux_rt_tsigqueueinfo */
+ /* linux_rt_tgsigqueueinfo */
case 335: {
- *n_args = 0;
+ struct linux_rt_tgsigqueueinfo_args *p = params;
+ iarg[0] = p->tgid; /* l_pid_t */
+ iarg[1] = p->tid; /* l_pid_t */
+ iarg[2] = p->sig; /* l_int */
+ uarg[3] = (intptr_t) p->uinfo; /* l_siginfo_t * */
+ *n_args = 4;
break;
}
/* linux_perf_event_open */
@@ -2351,12 +2368,352 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
}
/* linux_process_vm_readv */
case 347: {
- *n_args = 0;
+ struct linux_process_vm_readv_args *p = params;
+ iarg[0] = p->pid; /* l_pid_t */
+ uarg[1] = (intptr_t) p->lvec; /* const struct iovec * */
+ iarg[2] = p->liovcnt; /* l_ulong */
+ uarg[3] = (intptr_t) p->rvec; /* const struct iovec * */
+ iarg[4] = p->riovcnt; /* l_ulong */
+ iarg[5] = p->flags; /* l_ulong */
+ *n_args = 6;
break;
}
/* linux_process_vm_writev */
case 348: {
- *n_args = 0;
+ struct linux_process_vm_writev_args *p = params;
+ iarg[0] = p->pid; /* l_pid_t */
+ uarg[1] = (intptr_t) p->lvec; /* const struct iovec * */
+ iarg[2] = p->liovcnt; /* l_ulong */
+ uarg[3] = (intptr_t) p->rvec; /* const struct iovec * */
+ iarg[4] = p->riovcnt; /* l_ulong */
+ iarg[5] = p->flags; /* l_ulong */
+ *n_args = 6;
+ break;
+ }
+ /* linux_kcmp */
+ case 349: {
+ struct linux_kcmp_args *p = params;
+ iarg[0] = p->pid1; /* l_pid_t */
+ iarg[1] = p->pid2; /* l_pid_t */
+ iarg[2] = p->type; /* l_int */
+ iarg[3] = p->idx1; /* l_ulong */
+ iarg[4] = p->idx; /* l_ulong */
+ *n_args = 5;
+ break;
+ }
+ /* linux_finit_module */
+ case 350: {
+ struct linux_finit_module_args *p = params;
+ iarg[0] = p->fd; /* l_int */
+ uarg[1] = (intptr_t) p->uargs; /* const char * */
+ iarg[2] = p->flags; /* l_int */
+ *n_args = 3;
+ break;
+ }
+ /* linux_sched_setattr */
+ case 351: {
+ struct linux_sched_setattr_args *p = params;
+ iarg[0] = p->pid; /* l_pid_t */
+ uarg[1] = (intptr_t) p->attr; /* void * */
+ iarg[2] = p->flags; /* l_uint */
+ *n_args = 3;
+ break;
+ }
+ /* linux_sched_getattr */
+ case 352: {
+ struct linux_sched_getattr_args *p = params;
+ iarg[0] = p->pid; /* l_pid_t */
+ uarg[1] = (intptr_t) p->attr; /* void * */
+ iarg[2] = p->size; /* l_uint */
+ iarg[3] = p->flags; /* l_uint */
+ *n_args = 4;
+ break;
+ }
+ /* linux_renameat2 */
+ case 353: {
+ struct linux_renameat2_args *p = params;
+ iarg[0] = p->oldfd; /* l_int */
+ uarg[1] = (intptr_t) p->oldname; /* const char * */
+ iarg[2] = p->newfd; /* l_int */
+ uarg[3] = (intptr_t) p->newname; /* const char * */
+ uarg[4] = p->flags; /* unsigned int */
+ *n_args = 5;
+ break;
+ }
+ /* linux_seccomp */
+ case 354: {
+ struct linux_seccomp_args *p = params;
+ iarg[0] = p->op; /* l_uint */
+ iarg[1] = p->flags; /* l_uint */
+ uarg[2] = (intptr_t) p->uargs; /* const char * */
+ *n_args = 3;
+ break;
+ }
+ /* linux_getrandom */
+ case 355: {
+ struct linux_getrandom_args *p = params;
+ uarg[0] = (intptr_t) p->buf; /* char * */
+ iarg[1] = p->count; /* l_size_t */
+ iarg[2] = p->flags; /* l_uint */
+ *n_args = 3;
+ break;
+ }
+ /* linux_memfd_create */
+ case 356: {
+ struct linux_memfd_create_args *p = params;
+ uarg[0] = (intptr_t) p->uname_ptr; /* const char * */
+ iarg[1] = p->flags; /* l_uint */
+ *n_args = 2;
+ break;
+ }
+ /* linux_bpf */
+ case 357: {
+ struct linux_bpf_args *p = params;
+ iarg[0] = p->cmd; /* l_int */
+ uarg[1] = (intptr_t) p->attr; /* void * */
+ iarg[2] = p->size; /* l_uint */
+ *n_args = 3;
+ break;
+ }
+ /* linux_execveat */
+ case 358: {
+ struct linux_execveat_args *p = params;
+ iarg[0] = p->dfd; /* l_int */
+ uarg[1] = (intptr_t) p->filename; /* const char * */
+ uarg[2] = (intptr_t) p->argv; /* const char ** */
+ uarg[3] = (intptr_t) p->envp; /* const char ** */
+ iarg[4] = p->flags; /* l_int */
+ *n_args = 5;
+ break;
+ }
+ /* linux_socket */
+ case 359: {
+ struct linux_socket_args *p = params;
+ iarg[0] = p->domain; /* l_int */
+ iarg[1] = p->type; /* l_int */
+ iarg[2] = p->protocol; /* l_int */
+ *n_args = 3;
+ break;
+ }
+ /* linux_socketpair */
+ case 360: {
+ struct linux_socketpair_args *p = params;
+ iarg[0] = p->domain; /* l_int */
+ iarg[1] = p->type; /* l_int */
+ iarg[2] = p->protocol; /* l_int */
+ iarg[3] = p->rsv; /* l_uintptr_t */
+ *n_args = 4;
+ break;
+ }
+ /* linux_bind */
+ case 361: {
+ struct linux_bind_args *p = params;
+ iarg[0] = p->s; /* l_int */
+ iarg[1] = p->name; /* l_uintptr_t */
+ iarg[2] = p->namelen; /* l_int */
+ *n_args = 3;
+ break;
+ }
+ /* linux_connect */
+ case 362: {
+ struct linux_connect_args *p = params;
+ iarg[0] = p->s; /* l_int */
+ iarg[1] = p->name; /* l_uintptr_t */
+ iarg[2] = p->namelen; /* l_int */
+ *n_args = 3;
+ break;
+ }
+ /* linux_listen */
+ case 363: {
+ struct linux_listen_args *p = params;
+ iarg[0] = p->s; /* l_int */
+ iarg[1] = p->backlog; /* l_int */
+ *n_args = 2;
+ break;
+ }
+ /* linux_accept4 */
+ case 364: {
+ struct linux_accept4_args *p = params;
+ iarg[0] = p->s; /* l_int */
+ iarg[1] = p->addr; /* l_uintptr_t */
+ iarg[2] = p->namelen; /* l_uintptr_t */
+ iarg[3] = p->flags; /* l_int */
+ *n_args = 4;
+ break;
+ }
+ /* linux_getsockopt */
+ case 365: {
+ struct linux_getsockopt_args *p = params;
+ iarg[0] = p->s; /* l_int */
+ iarg[1] = p->level; /* l_int */
+ iarg[2] = p->optname; /* l_int */
+ iarg[3] = p->optval; /* l_uintptr_t */
+ iarg[4] = p->optlen; /* l_uintptr_t */
+ *n_args = 5;
+ break;
+ }
+ /* linux_setsockopt */
+ case 366: {
+ struct linux_setsockopt_args *p = params;
+ iarg[0] = p->s; /* l_int */
+ iarg[1] = p->level; /* l_int */
+ iarg[2] = p->optname; /* l_int */
+ iarg[3] = p->optval; /* l_uintptr_t */
+ iarg[4] = p->optlen; /* l_int */
+ *n_args = 5;
+ break;
+ }
+ /* linux_getsockname */
+ case 367: {
+ struct linux_getsockname_args *p = params;
+ iarg[0] = p->s; /* l_int */
+ iarg[1] = p->addr; /* l_uintptr_t */
+ iarg[2] = p->namelen; /* l_uintptr_t */
+ *n_args = 3;
+ break;
+ }
+ /* linux_getpeername */
+ case 368: {
+ struct linux_getpeername_args *p = params;
+ iarg[0] = p->s; /* l_int */
+ iarg[1] = p->addr; /* l_uintptr_t */
+ iarg[2] = p->namelen; /* l_uintptr_t */
+ *n_args = 3;
+ break;
+ }
+ /* linux_sendto */
+ case 369: {
+ struct linux_sendto_args *p = params;
+ iarg[0] = p->s; /* l_int */
+ iarg[1] = p->msg; /* l_uintptr_t */
+ iarg[2] = p->len; /* l_int */
+ iarg[3] = p->flags; /* l_int */
+ iarg[4] = p->to; /* l_uintptr_t */
+ iarg[5] = p->tolen; /* l_int */
+ *n_args = 6;
+ break;
+ }
+ /* linux_sendmsg */
+ case 370: {
+ struct linux_sendmsg_args *p = params;
+ iarg[0] = p->s; /* l_int */
+ iarg[1] = p->msg; /* l_uintptr_t */
+ iarg[2] = p->flags; /* l_int */
+ *n_args = 3;
+ break;
+ }
+ /* linux_recvfrom */
+ case 371: {
+ struct linux_recvfrom_args *p = params;
+ iarg[0] = p->s; /* l_int */
+ iarg[1] = p->buf; /* l_uintptr_t */
+ iarg[2] = p->len; /* l_size_t */
+ iarg[3] = p->flags; /* l_int */
+ iarg[4] = p->from; /* l_uintptr_t */
+ iarg[5] = p->fromlen; /* l_uintptr_t */
+ *n_args = 6;
+ break;
+ }
+ /* linux_recvmsg */
+ case 372: {
+ struct linux_recvmsg_args *p = params;
+ iarg[0] = p->s; /* l_int */
+ iarg[1] = p->msg; /* l_uintptr_t */
+ iarg[2] = p->flags; /* l_int */
+ *n_args = 3;
+ break;
+ }
+ /* linux_shutdown */
+ case 373: {
+ struct linux_shutdown_args *p = params;
+ iarg[0] = p->s; /* l_int */
+ iarg[1] = p->how; /* l_int */
+ *n_args = 2;
+ break;
+ }
+ /* linux_userfaultfd */
+ case 374: {
+ struct linux_userfaultfd_args *p = params;
+ iarg[0] = p->flags; /* l_int */
+ *n_args = 1;
+ break;
+ }
+ /* linux_membarrier */
+ case 375: {
+ struct linux_membarrier_args *p = params;
+ iarg[0] = p->cmd; /* l_int */
+ iarg[1] = p->flags; /* l_int */
+ *n_args = 2;
+ break;
+ }
+ /* linux_mlock2 */
+ case 376: {
+ struct linux_mlock2_args *p = params;
+ iarg[0] = p->start; /* l_ulong */
+ iarg[1] = p->len; /* l_size_t */
+ iarg[2] = p->flags; /* l_int */
+ *n_args = 3;
+ break;
+ }
+ /* linux_copy_file_range */
+ case 377: {
+ struct linux_copy_file_range_args *p = params;
+ iarg[0] = p->fd_in; /* l_int */
+ uarg[1] = (intptr_t) p->off_in; /* l_loff_t * */
+ iarg[2] = p->fd_out; /* l_int */
+ uarg[3] = (intptr_t) p->off_out; /* l_loff_t * */
+ iarg[4] = p->len; /* l_size_t */
+ iarg[5] = p->flags; /* l_uint */
+ *n_args = 6;
+ break;
+ }
+ /* linux_preadv2 */
+ case 378: {
+ struct linux_preadv2_args *p = params;
+ iarg[0] = p->fd; /* l_ulong */
+ uarg[1] = (intptr_t) p->vec; /* const struct iovec * */
+ iarg[2] = p->vlen; /* l_ulong */
+ iarg[3] = p->pos_l; /* l_ulong */
+ iarg[4] = p->pos_h; /* l_ulong */
+ iarg[5] = p->flags; /* l_int */
+ *n_args = 6;
+ break;
+ }
+ /* linux_pwritev2 */
+ case 379: {
+ struct linux_pwritev2_args *p = params;
+ iarg[0] = p->fd; /* l_ulong */
+ uarg[1] = (intptr_t) p->vec; /* const struct iovec * */
+ iarg[2] = p->vlen; /* l_ulong */
+ iarg[3] = p->pos_l; /* l_ulong */
+ iarg[4] = p->pos_h; /* l_ulong */
+ iarg[5] = p->flags; /* l_int */
+ *n_args = 6;
+ break;
+ }
+ /* linux_pkey_mprotect */
+ case 380: {
+ struct linux_pkey_mprotect_args *p = params;
+ iarg[0] = p->start; /* l_ulong */
+ iarg[1] = p->len; /* l_size_t */
+ iarg[2] = p->prot; /* l_ulong */
+ iarg[3] = p->pkey; /* l_int */
+ *n_args = 4;
+ break;
+ }
+ /* linux_pkey_alloc */
+ case 381: {
+ struct linux_pkey_alloc_args *p = params;
+ iarg[0] = p->flags; /* l_ulong */
+ iarg[1] = p->init_val; /* l_ulong */
+ *n_args = 2;
+ break;
+ }
+ /* linux_pkey_free */
+ case 382: {
+ struct linux_pkey_free_args *p = params;
+ iarg[0] = p->pkey; /* l_int */
+ *n_args = 1;
break;
}
default:
@@ -5737,12 +6094,66 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
break;
/* linux_preadv */
case 333:
+ switch(ndx) {
+ case 0:
+ p = "l_ulong";
+ break;
+ case 1:
+ p = "userland struct iovec *";
+ break;
+ case 2:
+ p = "l_ulong";
+ break;
+ case 3:
+ p = "l_ulong";
+ break;
+ case 4:
+ p = "l_ulong";
+ break;
+ default:
+ break;
+ };
break;
/* linux_pwritev */
case 334:
+ switch(ndx) {
+ case 0:
+ p = "l_ulong";
+ break;
+ case 1:
+ p = "userland struct iovec *";
+ break;
+ case 2:
+ p = "l_ulong";
+ break;
+ case 3:
+ p = "l_ulong";
+ break;
+ case 4:
+ p = "l_ulong";
+ break;
+ default:
+ break;
+ };
break;
- /* linux_rt_tsigqueueinfo */
+ /* linux_rt_tgsigqueueinfo */
case 335:
+ switch(ndx) {
+ case 0:
+ p = "l_pid_t";
+ break;
+ case 1:
+ p = "l_pid_t";
+ break;
+ case 2:
+ p = "l_int";
+ break;
+ case 3:
+ p = "userland l_siginfo_t *";
+ break;
+ default:
+ break;
+ };
break;
/* linux_perf_event_open */
case 336:
@@ -5837,9 +6248,657 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
break;
/* linux_process_vm_readv */
case 347:
+ switch(ndx) {
+ case 0:
+ p = "l_pid_t";
+ break;
+ case 1:
+ p = "userland const struct iovec *";
+ break;
+ case 2:
+ p = "l_ulong";
+ break;
+ case 3:
+ p = "userland const struct iovec *";
+ break;
+ case 4:
+ p = "l_ulong";
+ break;
+ case 5:
+ p = "l_ulong";
+ break;
+ default:
+ break;
+ };
break;
/* linux_process_vm_writev */
case 348:
+ switch(ndx) {
+ case 0:
+ p = "l_pid_t";
+ break;
+ case 1:
+ p = "userland const struct iovec *";
+ break;
+ case 2:
+ p = "l_ulong";
+ break;
+ case 3:
+ p = "userland const struct iovec *";
+ break;
+ case 4:
+ p = "l_ulong";
+ break;
+ case 5:
+ p = "l_ulong";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_kcmp */
+ case 349:
+ switch(ndx) {
+ case 0:
+ p = "l_pid_t";
+ break;
+ case 1:
+ p = "l_pid_t";
+ break;
+ case 2:
+ p = "l_int";
+ break;
+ case 3:
+ p = "l_ulong";
+ break;
+ case 4:
+ p = "l_ulong";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_finit_module */
+ case 350:
+ switch(ndx) {
+ case 0:
+ p = "l_int";
+ break;
+ case 1:
+ p = "userland const char *";
+ break;
+ case 2:
+ p = "l_int";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_sched_setattr */
+ case 351:
+ switch(ndx) {
+ case 0:
+ p = "l_pid_t";
+ break;
+ case 1:
+ p = "userland void *";
+ break;
+ case 2:
+ p = "l_uint";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_sched_getattr */
+ case 352:
+ switch(ndx) {
+ case 0:
+ p = "l_pid_t";
+ break;
+ case 1:
+ p = "userland void *";
+ break;
+ case 2:
+ p = "l_uint";
+ break;
+ case 3:
+ p = "l_uint";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_renameat2 */
+ case 353:
+ switch(ndx) {
+ case 0:
+ p = "l_int";
+ break;
+ case 1:
+ p = "userland const char *";
+ break;
+ case 2:
+ p = "l_int";
+ break;
+ case 3:
+ p = "userland const char *";
+ break;
+ case 4:
+ p = "unsigned int";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_seccomp */
+ case 354:
+ switch(ndx) {
+ case 0:
+ p = "l_uint";
+ break;
+ case 1:
+ p = "l_uint";
+ break;
+ case 2:
+ p = "userland const char *";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_getrandom */
+ case 355:
+ switch(ndx) {
+ case 0:
+ p = "userland char *";
+ break;
+ case 1:
+ p = "l_size_t";
+ break;
+ case 2:
+ p = "l_uint";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_memfd_create */
+ case 356:
+ switch(ndx) {
+ case 0:
+ p = "userland const char *";
+ break;
+ case 1:
+ p = "l_uint";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_bpf */
+ case 357:
+ switch(ndx) {
+ case 0:
+ p = "l_int";
+ break;
+ case 1:
+ p = "userland void *";
+ break;
+ case 2:
+ p = "l_uint";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_execveat */
+ case 358:
+ switch(ndx) {
+ case 0:
+ p = "l_int";
+ break;
+ case 1:
+ p = "userland const char *";
+ break;
+ case 2:
+ p = "userland const char **";
+ break;
+ case 3:
+ p = "userland const char **";
+ break;
+ case 4:
+ p = "l_int";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_socket */
+ case 359:
+ switch(ndx) {
+ case 0:
+ p = "l_int";
+ break;
+ case 1:
+ p = "l_int";
+ break;
+ case 2:
+ p = "l_int";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_socketpair */
+ case 360:
+ switch(ndx) {
+ case 0:
+ p = "l_int";
+ break;
+ case 1:
+ p = "l_int";
+ break;
+ case 2:
+ p = "l_int";
+ break;
+ case 3:
+ p = "l_uintptr_t";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_bind */
+ case 361:
+ switch(ndx) {
+ case 0:
+ p = "l_int";
+ break;
+ case 1:
+ p = "l_uintptr_t";
+ break;
+ case 2:
+ p = "l_int";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_connect */
+ case 362:
+ switch(ndx) {
+ case 0:
+ p = "l_int";
+ break;
+ case 1:
+ p = "l_uintptr_t";
+ break;
+ case 2:
+ p = "l_int";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_listen */
+ case 363:
+ switch(ndx) {
+ case 0:
+ p = "l_int";
+ break;
+ case 1:
+ p = "l_int";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_accept4 */
+ case 364:
+ switch(ndx) {
+ case 0:
+ p = "l_int";
+ break;
+ case 1:
+ p = "l_uintptr_t";
+ break;
+ case 2:
+ p = "l_uintptr_t";
+ break;
+ case 3:
+ p = "l_int";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_getsockopt */
+ case 365:
+ switch(ndx) {
+ case 0:
+ p = "l_int";
+ break;
+ case 1:
+ p = "l_int";
+ break;
+ case 2:
+ p = "l_int";
+ break;
+ case 3:
+ p = "l_uintptr_t";
+ break;
+ case 4:
+ p = "l_uintptr_t";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_setsockopt */
+ case 366:
+ switch(ndx) {
+ case 0:
+ p = "l_int";
+ break;
+ case 1:
+ p = "l_int";
+ break;
+ case 2:
+ p = "l_int";
+ break;
+ case 3:
+ p = "l_uintptr_t";
+ break;
+ case 4:
+ p = "l_int";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_getsockname */
+ case 367:
+ switch(ndx) {
+ case 0:
+ p = "l_int";
+ break;
+ case 1:
+ p = "l_uintptr_t";
+ break;
+ case 2:
+ p = "l_uintptr_t";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_getpeername */
+ case 368:
+ switch(ndx) {
+ case 0:
+ p = "l_int";
+ break;
+ case 1:
+ p = "l_uintptr_t";
+ break;
+ case 2:
+ p = "l_uintptr_t";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_sendto */
+ case 369:
+ switch(ndx) {
+ case 0:
+ p = "l_int";
+ break;
+ case 1:
+ p = "l_uintptr_t";
+ break;
+ case 2:
+ p = "l_int";
+ break;
+ case 3:
+ p = "l_int";
+ break;
+ case 4:
+ p = "l_uintptr_t";
+ break;
+ case 5:
+ p = "l_int";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_sendmsg */
+ case 370:
+ switch(ndx) {
+ case 0:
+ p = "l_int";
+ break;
+ case 1:
+ p = "l_uintptr_t";
+ break;
+ case 2:
+ p = "l_int";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_recvfrom */
+ case 371:
+ switch(ndx) {
+ case 0:
+ p = "l_int";
+ break;
+ case 1:
+ p = "l_uintptr_t";
+ break;
+ case 2:
+ p = "l_size_t";
+ break;
+ case 3:
+ p = "l_int";
+ break;
+ case 4:
+ p = "l_uintptr_t";
+ break;
+ case 5:
+ p = "l_uintptr_t";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_recvmsg */
+ case 372:
+ switch(ndx) {
+ case 0:
+ p = "l_int";
+ break;
+ case 1:
+ p = "l_uintptr_t";
+ break;
+ case 2:
+ p = "l_int";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_shutdown */
+ case 373:
+ switch(ndx) {
+ case 0:
+ p = "l_int";
+ break;
+ case 1:
+ p = "l_int";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_userfaultfd */
+ case 374:
+ switch(ndx) {
+ case 0:
+ p = "l_int";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_membarrier */
+ case 375:
+ switch(ndx) {
+ case 0:
+ p = "l_int";
+ break;
+ case 1:
+ p = "l_int";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_mlock2 */
+ case 376:
+ switch(ndx) {
+ case 0:
+ p = "l_ulong";
+ break;
+ case 1:
+ p = "l_size_t";
+ break;
+ case 2:
+ p = "l_int";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_copy_file_range */
+ case 377:
+ switch(ndx) {
+ case 0:
+ p = "l_int";
+ break;
+ case 1:
+ p = "userland l_loff_t *";
+ break;
+ case 2:
+ p = "l_int";
+ break;
+ case 3:
+ p = "userland l_loff_t *";
+ break;
+ case 4:
+ p = "l_size_t";
+ break;
+ case 5:
+ p = "l_uint";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_preadv2 */
+ case 378:
+ switch(ndx) {
+ case 0:
+ p = "l_ulong";
+ break;
+ case 1:
+ p = "userland const struct iovec *";
+ break;
+ case 2:
+ p = "l_ulong";
+ break;
+ case 3:
+ p = "l_ulong";
+ break;
+ case 4:
+ p = "l_ulong";
+ break;
+ case 5:
+ p = "l_int";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_pwritev2 */
+ case 379:
+ switch(ndx) {
+ case 0:
+ p = "l_ulong";
+ break;
+ case 1:
+ p = "userland const struct iovec *";
+ break;
+ case 2:
+ p = "l_ulong";
+ break;
+ case 3:
+ p = "l_ulong";
+ break;
+ case 4:
+ p = "l_ulong";
+ break;
+ case 5:
+ p = "l_int";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_pkey_mprotect */
+ case 380:
+ switch(ndx) {
+ case 0:
+ p = "l_ulong";
+ break;
+ case 1:
+ p = "l_size_t";
+ break;
+ case 2:
+ p = "l_ulong";
+ break;
+ case 3:
+ p = "l_int";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_pkey_alloc */
+ case 381:
+ switch(ndx) {
+ case 0:
+ p = "l_ulong";
+ break;
+ case 1:
+ p = "l_ulong";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux_pkey_free */
+ case 382:
+ switch(ndx) {
+ case 0:
+ p = "l_int";
+ break;
+ default:
+ break;
+ };
break;
default:
break;
@@ -7109,10 +8168,19 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
case 332:
/* linux_preadv */
case 333:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
/* linux_pwritev */
case 334:
- /* linux_rt_tsigqueueinfo */
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_rt_tgsigqueueinfo */
case 335:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
/* linux_perf_event_open */
case 336:
/* linux_recvmmsg */
@@ -7149,8 +8217,184 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
case 346:
/* linux_process_vm_readv */
case 347:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
/* linux_process_vm_writev */
case 348:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_kcmp */
+ case 349:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_finit_module */
+ case 350:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_sched_setattr */
+ case 351:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_sched_getattr */
+ case 352:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_renameat2 */
+ case 353:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_seccomp */
+ case 354:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_getrandom */
+ case 355:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_memfd_create */
+ case 356:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_bpf */
+ case 357:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_execveat */
+ case 358:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_socket */
+ case 359:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_socketpair */
+ case 360:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_bind */
+ case 361:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_connect */
+ case 362:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_listen */
+ case 363:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_accept4 */
+ case 364:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_getsockopt */
+ case 365:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_setsockopt */
+ case 366:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_getsockname */
+ case 367:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_getpeername */
+ case 368:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_sendto */
+ case 369:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_sendmsg */
+ case 370:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_recvfrom */
+ case 371:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_recvmsg */
+ case 372:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_shutdown */
+ case 373:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_userfaultfd */
+ case 374:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_membarrier */
+ case 375:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_mlock2 */
+ case 376:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_copy_file_range */
+ case 377:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_preadv2 */
+ case 378:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_pwritev2 */
+ case 379:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_pkey_mprotect */
+ case 380:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_pkey_alloc */
+ case 381:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux_pkey_free */
+ case 382:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
default:
break;
};
diff --git a/sys/amd64/linux32/syscalls.master b/sys/amd64/linux32/syscalls.master
index 20aa3c4..1c261f9 100644
--- a/sys/amd64/linux32/syscalls.master
+++ b/sys/amd64/linux32/syscalls.master
@@ -11,18 +11,20 @@
; there is no audit event for the call at this time. For the
; case where the event exists, but we don't want auditing, the
; event should be #defined to AUE_NULL in audit_kevents.h.
-; type one of STD, OBSOL, UNIMPL
+; type one of STD, NOPROTO, UNIMPL
; name psuedo-prototype of syscall routine
; If one of the following alts is different, then all appear:
; altname name of system call if different
; alttag name of args struct tag if different from [o]`name'"_args"
; altrtyp return type if not int (bogus - syscalls always return int)
-; for UNIMPL/OBSOL, name continues with comments
+; for UNIMPL, name continues with comments
; types:
; STD always included
-; OBSOL obsolete, not included in system, only specifies name
; UNIMPL not implemented, placeholder only
+; NOPROTO same as STD except do not create structure or
+; function prototype in sys/sysproto.h. Does add a
+; definition to syscall.h besides adding a sysent.
#include "opt_compat.h"
#include <sys/param.h>
@@ -553,10 +555,15 @@
331 AUE_NULL STD { int linux_pipe2(l_int *pipefds, l_int flags); }
332 AUE_NULL STD { int linux_inotify_init1(void); }
; linux 2.6.30:
-333 AUE_NULL STD { int linux_preadv(void); }
-334 AUE_NULL STD { int linux_pwritev(void); }
+333 AUE_NULL STD { int linux_preadv(l_ulong fd, \
+ struct iovec *vec, l_ulong vlen, \
+ l_ulong pos_l, l_ulong pos_h); }
+334 AUE_NULL STD { int linux_pwritev(l_ulong fd, \
+ struct iovec *vec, l_ulong vlen, \
+ l_ulong pos_l, l_ulong pos_h); }
; linux 2.6.31:
-335 AUE_NULL STD { int linux_rt_tsigqueueinfo(void); }
+335 AUE_NULL STD { int linux_rt_tgsigqueueinfo(l_pid_t tgid, \
+ l_pid_t tid, l_int sig, l_siginfo_t *uinfo); }
336 AUE_NULL STD { int linux_perf_event_open(void); }
; linux 2.6.33:
337 AUE_NULL STD { int linux_recvmmsg(l_int s, \
@@ -569,16 +576,113 @@
l_uint resource, \
struct rlimit *new, \
struct rlimit *old); }
-; later:
+; linux 2.6.39:
341 AUE_NULL STD { int linux_name_to_handle_at(void); }
342 AUE_NULL STD { int linux_open_by_handle_at(void); }
343 AUE_NULL STD { int linux_clock_adjtime(void); }
344 AUE_SYNC STD { int linux_syncfs(l_int fd); }
+; linux 3.0:
345 AUE_NULL STD { int linux_sendmmsg(l_int s, \
struct l_mmsghdr *msg, l_uint vlen, \
l_uint flags); }
346 AUE_NULL STD { int linux_setns(void); }
-347 AUE_NULL STD { int linux_process_vm_readv(void); }
-348 AUE_NULL STD { int linux_process_vm_writev(void); }
+; linux 3.2 (glibc 2.15):
+347 AUE_NULL STD { int linux_process_vm_readv(l_pid_t pid, \
+ const struct iovec *lvec, l_ulong liovcnt, \
+ const struct iovec *rvec, l_ulong riovcnt, \
+ l_ulong flags); }
+348 AUE_NULL STD { int linux_process_vm_writev(l_pid_t pid, \
+ const struct iovec *lvec, l_ulong liovcnt, \
+ const struct iovec *rvec, l_ulong riovcnt, \
+ l_ulong flags); }
+; linux 3.5 (no glibc wrapper):
+349 AUE_NULL STD { int linux_kcmp(l_pid_t pid1, l_pid_t pid2, \
+ l_int type, l_ulong idx1, l_ulong idx); }
+; linux 3.8 (no glibc wrapper):
+350 AUE_NULL STD { int linux_finit_module(l_int fd, \
+ const char *uargs, l_int flags); }
+; linux 3.14:
+351 AUE_NULL STD { int linux_sched_setattr(l_pid_t pid, \
+ void *attr, l_uint flags); }
+352 AUE_NULL STD { int linux_sched_getattr(l_pid_t pid, \
+ void *attr, l_uint size, l_uint flags); }
+; linux 3.15:
+353 AUE_NULL STD { int linux_renameat2(l_int oldfd, \
+ const char *oldname, l_int newfd, \
+ const char *newname, unsigned int flags); }
+; linux 3.17:
+354 AUE_NULL STD { int linux_seccomp(l_uint op, l_uint flags, \
+ const char *uargs); }
+355 AUE_NULL STD { int linux_getrandom(char *buf, \
+ l_size_t count, l_uint flags); }
+356 AUE_NULL STD { int linux_memfd_create(const char *uname_ptr, \
+ l_uint flags); }
+; linux 3.18:
+357 AUE_NULL STD { int linux_bpf(l_int cmd, void *attr, \
+ l_uint size); }
+; linux 3.19:
+358 AUE_NULL STD { int linux_execveat(l_int dfd, \
+ const char *filename, const char **argv, \
+ const char **envp, l_int flags); }
+; linux 4.3: sockets now direct system calls:
+359 AUE_SOCKET STD { int linux_socket(l_int domain, l_int type, \
+ l_int protocol); }
+360 AUE_SOCKETPAIR STD { int linux_socketpair(l_int domain, \
+ l_int type, l_int protocol, l_uintptr_t rsv); }
+361 AUE_BIND STD { int linux_bind(l_int s, l_uintptr_t name, \
+ l_int namelen); }
+362 AUE_CONNECT STD { int linux_connect(l_int s, l_uintptr_t name, \
+ l_int namelen); }
+363 AUE_LISTEN STD { int linux_listen(l_int s, l_int backlog); }
+364 AUE_ACCEPT STD { int linux_accept4(l_int s, l_uintptr_t addr, \
+ l_uintptr_t namelen, l_int flags); }
+365 AUE_GETSOCKOPT STD { int linux_getsockopt(l_int s, l_int level, \
+ l_int optname, l_uintptr_t optval, \
+ l_uintptr_t optlen); }
+366 AUE_SETSOCKOPT STD { int linux_setsockopt(l_int s, l_int level, \
+ l_int optname, l_uintptr_t optval, \
+ l_int optlen); }
+367 AUE_GETSOCKNAME STD { int linux_getsockname(l_int s, \
+ l_uintptr_t addr, l_uintptr_t namelen); }
+368 AUE_GETPEERNAME STD { int linux_getpeername(l_int s, \
+ l_uintptr_t addr, l_uintptr_t namelen); }
+369 AUE_SENDTO STD { int linux_sendto(l_int s, l_uintptr_t msg, \
+ l_int len, l_int flags, l_uintptr_t to, \
+ l_int tolen); }
+370 AUE_SENDMSG STD { int linux_sendmsg(l_int s, l_uintptr_t msg, \
+ l_int flags); }
+371 AUE_RECVFROM STD { int linux_recvfrom(l_int s, l_uintptr_t buf, \
+ l_size_t len, l_int flags, l_uintptr_t from, \
+ l_uintptr_t fromlen); }
+372 AUE_RECVMSG STD { int linux_recvmsg(l_int s, l_uintptr_t msg, \
+ l_int flags); }
+373 AUE_NULL STD { int linux_shutdown(l_int s, l_int how); }
+;
+; linux 4.2:
+374 AUE_NULL STD { int linux_userfaultfd(l_int flags); }
+; linux 4.3:
+375 AUE_NULL STD { int linux_membarrier(l_int cmd, l_int flags); }
+; linux 4.4:
+376 AUE_NULL STD { int linux_mlock2(l_ulong start, l_size_t len, \
+ l_int flags); }
+; linux 4.5:
+377 AUE_NULL STD { int linux_copy_file_range(l_int fd_in, \
+ l_loff_t *off_in, l_int fd_out, \
+ l_loff_t *off_out, l_size_t len, \
+ l_uint flags); }
+; linux 4.6:
+378 AUE_NULL STD { int linux_preadv2(l_ulong fd, \
+ const struct iovec *vec, l_ulong vlen, \
+ l_ulong pos_l, l_ulong pos_h, l_int flags); }
+379 AUE_NULL STD { int linux_pwritev2(l_ulong fd, \
+ const struct iovec *vec, l_ulong vlen, \
+ l_ulong pos_l, l_ulong pos_h, l_int flags); }
+; linux 4.8:
+380 AUE_NULL STD { int linux_pkey_mprotect(l_ulong start, \
+ l_size_t len, l_ulong prot, l_int pkey); }
+381 AUE_NULL STD { int linux_pkey_alloc(l_ulong flags, \
+ l_ulong init_val); }
+382 AUE_NULL STD { int linux_pkey_free(l_int pkey); }
+
; please, keep this line at the end.
-349 AUE_NULL UNIMPL nosys
+383 AUE_NULL UNIMPL nosys
OpenPOWER on IntegriCloud