Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 Feb 2017 19:57:59 +0000 (UTC)
From:      Dmitry Chagin <dchagin@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r314107 - in stable/11/sys: amd64/linux amd64/linux32 compat/linux i386/linux
Message-ID:  <201702221957.v1MJvxvD043737@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dchagin
Date: Wed Feb 22 19:57:59 2017
New Revision: 314107
URL: https://svnweb.freebsd.org/changeset/base/314107

Log:
  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.

Modified:
  stable/11/sys/amd64/linux/linux_dummy.c
  stable/11/sys/amd64/linux/linux_proto.h
  stable/11/sys/amd64/linux/linux_syscall.h
  stable/11/sys/amd64/linux/linux_syscalls.c
  stable/11/sys/amd64/linux/linux_sysent.c
  stable/11/sys/amd64/linux/linux_systrace_args.c
  stable/11/sys/amd64/linux/syscalls.master
  stable/11/sys/amd64/linux32/linux32_dummy.c
  stable/11/sys/amd64/linux32/linux32_proto.h
  stable/11/sys/amd64/linux32/linux32_syscall.h
  stable/11/sys/amd64/linux32/linux32_syscalls.c
  stable/11/sys/amd64/linux32/linux32_sysent.c
  stable/11/sys/amd64/linux32/linux32_systrace_args.c
  stable/11/sys/amd64/linux32/syscalls.master
  stable/11/sys/compat/linux/linux_socket.c
  stable/11/sys/compat/linux/linux_socket.h
  stable/11/sys/i386/linux/linux_dummy.c
  stable/11/sys/i386/linux/linux_proto.h
  stable/11/sys/i386/linux/linux_syscall.h
  stable/11/sys/i386/linux/linux_syscalls.c
  stable/11/sys/i386/linux/linux_sysent.c
  stable/11/sys/i386/linux/linux_systrace_args.c
  stable/11/sys/i386/linux/syscalls.master

Modified: stable/11/sys/amd64/linux/linux_dummy.c
==============================================================================
--- stable/11/sys/amd64/linux/linux_dummy.c	Wed Feb 22 19:39:54 2017	(r314106)
+++ stable/11/sys/amd64/linux/linux_dummy.c	Wed Feb 22 19:57:59 2017	(r314107)
@@ -82,41 +82,86 @@ DUMMY(mq_timedreceive);
 DUMMY(mq_notify);
 DUMMY(mq_getsetattr);
 DUMMY(kexec_load);
+/* linux 2.6.11: */
 DUMMY(add_key);
 DUMMY(request_key);
 DUMMY(keyctl);
+/* linux 2.6.13: */
 DUMMY(ioprio_set);
 DUMMY(ioprio_get);
 DUMMY(inotify_init);
 DUMMY(inotify_add_watch);
 DUMMY(inotify_rm_watch);
+/* linux 2.6.16: */
 DUMMY(migrate_pages);
 DUMMY(unshare);
+/* linux 2.6.17: */
 DUMMY(splice);
 DUMMY(tee);
 DUMMY(sync_file_range);
 DUMMY(vmsplice);
+/* linux 2.6.18: */
 DUMMY(move_pages);
+/* linux 2.6.22: */
 DUMMY(signalfd);
-DUMMY(timerfd);
+DUMMY(timerfd_create);
+/* linux 2.6.25: */
 DUMMY(timerfd_settime);
 DUMMY(timerfd_gettime);
+/* linux 2.6.27: */
 DUMMY(signalfd4);
 DUMMY(inotify_init1);
+/* linux 2.6.30: */
 DUMMY(preadv);
 DUMMY(pwritev);
-DUMMY(rt_tsigqueueinfo);
+/* linux 2.6.31: */
+DUMMY(rt_tgsigqueueinfo);
 DUMMY(perf_event_open);
+/* linux 2.6.38: */
 DUMMY(fanotify_init);
 DUMMY(fanotify_mark);
+/* linux 2.6.39: */
 DUMMY(name_to_handle_at);
 DUMMY(open_by_handle_at);
 DUMMY(clock_adjtime);
+/* linux 3.0: */
 DUMMY(setns);
+DUMMY(getcpu);
+/* 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);
+DUMMY(kexec_file_load);
+/* 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								\

Modified: stable/11/sys/amd64/linux/linux_proto.h
==============================================================================
--- stable/11/sys/amd64/linux/linux_proto.h	Wed Feb 22 19:39:54 2017	(r314106)
+++ stable/11/sys/amd64/linux/linux_proto.h	Wed Feb 22 19:57:59 2017	(r314107)
@@ -3,7 +3,7 @@
  *
  * DO NOT EDIT-- this file is automatically generated.
  * $FreeBSD$
- * created from FreeBSD: head/sys/amd64/linux/syscalls.master 302515 2016-07-10 08:15:50Z dchagin 
+ * created from FreeBSD: head/sys/amd64/linux/syscalls.master 313284 2017-02-05 14:17:09Z dchagin
  */
 
 #ifndef _LINUX_SYSPROTO_H_
@@ -1000,7 +1000,7 @@ struct linux_epoll_pwait_args {
 struct linux_signalfd_args {
 	register_t dummy;
 };
-struct linux_timerfd_args {
+struct linux_timerfd_create_args {
 	register_t dummy;
 };
 struct linux_eventfd_args {
@@ -1044,16 +1044,27 @@ struct linux_pipe2_args {
 	char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)];
 };
 struct linux_inotify_init1_args {
-	register_t dummy;
+	char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)];
 };
 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;
@@ -1096,19 +1107,141 @@ struct linux_sendmmsg_args {
 	char flags_l_[PADL_(l_uint)]; l_uint flags; char flags_r_[PADR_(l_uint)];
 };
 struct linux_setns_args {
-	register_t dummy;
+	char fd_l_[PADL_(l_int)]; l_int fd; char fd_r_[PADR_(l_int)];
+	char nstype_l_[PADL_(l_int)]; l_int nstype; char nstype_r_[PADR_(l_int)];
+};
+struct linux_getcpu_args {
+	char cpu_l_[PADL_(l_uint *)]; l_uint * cpu; char cpu_r_[PADR_(l_uint *)];
+	char node_l_[PADL_(l_uint *)]; l_uint * node; char node_r_[PADR_(l_uint *)];
+	char cache_l_[PADL_(void *)]; void * cache; char cache_r_[PADR_(void *)];
 };
 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 {
-	register_t dummy;
+	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 {
-	register_t dummy;
+	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_kexec_file_load_args {
+	char kernel_fd_l_[PADL_(l_int)]; l_int kernel_fd; char kernel_fd_r_[PADR_(l_int)];
+	char initrd_fd_l_[PADL_(l_int)]; l_int initrd_fd; char initrd_fd_r_[PADR_(l_int)];
+	char cmdline_len_l_[PADL_(l_ulong)]; l_ulong cmdline_len; char cmdline_len_r_[PADR_(l_ulong)];
+	char cmdline_ptr_l_[PADL_(const char *)]; const char * cmdline_ptr; char cmdline_ptr_r_[PADR_(const char *)];
+	char flags_l_[PADL_(l_ulong)]; l_ulong flags; char flags_r_[PADR_(l_ulong)];
+};
+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_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_open(struct thread *, struct linux_open_args *);
@@ -1339,7 +1472,7 @@ int	linux_move_pages(struct thread *, st
 int	linux_utimensat(struct thread *, struct linux_utimensat_args *);
 int	linux_epoll_pwait(struct thread *, struct linux_epoll_pwait_args *);
 int	linux_signalfd(struct thread *, struct linux_signalfd_args *);
-int	linux_timerfd(struct thread *, struct linux_timerfd_args *);
+int	linux_timerfd_create(struct thread *, struct linux_timerfd_create_args *);
 int	linux_eventfd(struct thread *, struct linux_eventfd_args *);
 int	linux_fallocate(struct thread *, struct linux_fallocate_args *);
 int	linux_timerfd_settime(struct thread *, struct linux_timerfd_settime_args *);
@@ -1353,7 +1486,7 @@ int	linux_pipe2(struct thread *, struct 
 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 *);
@@ -1365,10 +1498,29 @@ int	linux_clock_adjtime(struct thread *,
 int	linux_syncfs(struct thread *, struct linux_syncfs_args *);
 int	linux_sendmmsg(struct thread *, struct linux_sendmmsg_args *);
 int	linux_setns(struct thread *, struct linux_setns_args *);
+int	linux_getcpu(struct thread *, struct linux_getcpu_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_kexec_file_load(struct thread *, struct linux_kexec_file_load_args *);
+int	linux_bpf(struct thread *, struct linux_bpf_args *);
+int	linux_execveat(struct thread *, struct linux_execveat_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
 
@@ -1632,7 +1784,7 @@ int	linux_finit_module(struct thread *, 
 #define	LINUX_SYS_AUE_linux_utimensat	AUE_FUTIMESAT
 #define	LINUX_SYS_AUE_linux_epoll_pwait	AUE_NULL
 #define	LINUX_SYS_AUE_linux_signalfd	AUE_NULL
-#define	LINUX_SYS_AUE_linux_timerfd	AUE_NULL
+#define	LINUX_SYS_AUE_linux_timerfd_create	AUE_NULL
 #define	LINUX_SYS_AUE_linux_eventfd	AUE_NULL
 #define	LINUX_SYS_AUE_linux_fallocate	AUE_NULL
 #define	LINUX_SYS_AUE_linux_timerfd_settime	AUE_NULL
@@ -1646,7 +1798,7 @@ int	linux_finit_module(struct thread *, 
 #define	LINUX_SYS_AUE_linux_inotify_init1	AUE_NULL
 #define	LINUX_SYS_AUE_linux_preadv	AUE_NULL
 #define	LINUX_SYS_AUE_linux_pwritev	AUE_NULL
-#define	LINUX_SYS_AUE_linux_rt_tsigqueueinfo	AUE_NULL
+#define	LINUX_SYS_AUE_linux_rt_tgsigqueueinfo	AUE_NULL
 #define	LINUX_SYS_AUE_linux_perf_event_open	AUE_NULL
 #define	LINUX_SYS_AUE_linux_recvmmsg	AUE_NULL
 #define	LINUX_SYS_AUE_linux_fanotify_init	AUE_NULL
@@ -1658,10 +1810,29 @@ int	linux_finit_module(struct thread *, 
 #define	LINUX_SYS_AUE_linux_syncfs	AUE_SYNC
 #define	LINUX_SYS_AUE_linux_sendmmsg	AUE_NULL
 #define	LINUX_SYS_AUE_linux_setns	AUE_NULL
+#define	LINUX_SYS_AUE_linux_getcpu	AUE_NULL
 #define	LINUX_SYS_AUE_linux_process_vm_readv	AUE_NULL
 #define	LINUX_SYS_AUE_linux_process_vm_writev	AUE_NULL
 #define	LINUX_SYS_AUE_linux_kcmp	AUE_NULL
 #define	LINUX_SYS_AUE_linux_finit_module	AUE_NULL
+#define	LINUX_SYS_AUE_linux_sched_setattr	AUE_NULL
+#define	LINUX_SYS_AUE_linux_sched_getattr	AUE_NULL
+#define	LINUX_SYS_AUE_linux_renameat2	AUE_NULL
+#define	LINUX_SYS_AUE_linux_seccomp	AUE_NULL
+#define	LINUX_SYS_AUE_linux_getrandom	AUE_NULL
+#define	LINUX_SYS_AUE_linux_memfd_create	AUE_NULL
+#define	LINUX_SYS_AUE_linux_kexec_file_load	AUE_NULL
+#define	LINUX_SYS_AUE_linux_bpf	AUE_NULL
+#define	LINUX_SYS_AUE_linux_execveat	AUE_NULL
+#define	LINUX_SYS_AUE_linux_userfaultfd	AUE_NULL
+#define	LINUX_SYS_AUE_linux_membarrier	AUE_NULL
+#define	LINUX_SYS_AUE_linux_mlock2	AUE_NULL
+#define	LINUX_SYS_AUE_linux_copy_file_range	AUE_NULL
+#define	LINUX_SYS_AUE_linux_preadv2	AUE_NULL
+#define	LINUX_SYS_AUE_linux_pwritev2	AUE_NULL
+#define	LINUX_SYS_AUE_linux_pkey_mprotect	AUE_NULL
+#define	LINUX_SYS_AUE_linux_pkey_alloc	AUE_NULL
+#define	LINUX_SYS_AUE_linux_pkey_free	AUE_NULL
 
 #undef PAD_
 #undef PADL_

Modified: stable/11/sys/amd64/linux/linux_syscall.h
==============================================================================
--- stable/11/sys/amd64/linux/linux_syscall.h	Wed Feb 22 19:39:54 2017	(r314106)
+++ stable/11/sys/amd64/linux/linux_syscall.h	Wed Feb 22 19:57:59 2017	(r314107)
@@ -3,7 +3,7 @@
  *
  * DO NOT EDIT-- this file is automatically generated.
  * $FreeBSD$
- * created from FreeBSD: head/sys/amd64/linux/syscalls.master 302515 2016-07-10 08:15:50Z dchagin 
+ * created from FreeBSD: head/sys/amd64/linux/syscalls.master 313284 2017-02-05 14:17:09Z dchagin
  */
 
 #define	LINUX_SYS_read	0
@@ -277,7 +277,7 @@
 #define	LINUX_SYS_linux_utimensat	280
 #define	LINUX_SYS_linux_epoll_pwait	281
 #define	LINUX_SYS_linux_signalfd	282
-#define	LINUX_SYS_linux_timerfd	283
+#define	LINUX_SYS_linux_timerfd_create	283
 #define	LINUX_SYS_linux_eventfd	284
 #define	LINUX_SYS_linux_fallocate	285
 #define	LINUX_SYS_linux_timerfd_settime	286
@@ -291,7 +291,7 @@
 #define	LINUX_SYS_linux_inotify_init1	294
 #define	LINUX_SYS_linux_preadv	295
 #define	LINUX_SYS_linux_pwritev	296
-#define	LINUX_SYS_linux_rt_tsigqueueinfo	297
+#define	LINUX_SYS_linux_rt_tgsigqueueinfo	297
 #define	LINUX_SYS_linux_perf_event_open	298
 #define	LINUX_SYS_linux_recvmmsg	299
 #define	LINUX_SYS_linux_fanotify_init	300
@@ -303,8 +303,27 @@
 #define	LINUX_SYS_linux_syncfs	306
 #define	LINUX_SYS_linux_sendmmsg	307
 #define	LINUX_SYS_linux_setns	308
-#define	LINUX_SYS_linux_process_vm_readv	309
-#define	LINUX_SYS_linux_process_vm_writev	310
-#define	LINUX_SYS_linux_kcmp	311
-#define	LINUX_SYS_linux_finit_module	312
-#define	LINUX_SYS_MAXSYSCALL	314
+#define	LINUX_SYS_linux_getcpu	309
+#define	LINUX_SYS_linux_process_vm_readv	310
+#define	LINUX_SYS_linux_process_vm_writev	311
+#define	LINUX_SYS_linux_kcmp	312
+#define	LINUX_SYS_linux_finit_module	313
+#define	LINUX_SYS_linux_sched_setattr	314
+#define	LINUX_SYS_linux_sched_getattr	315
+#define	LINUX_SYS_linux_renameat2	316
+#define	LINUX_SYS_linux_seccomp	317
+#define	LINUX_SYS_linux_getrandom	318
+#define	LINUX_SYS_linux_memfd_create	319
+#define	LINUX_SYS_linux_kexec_file_load	320
+#define	LINUX_SYS_linux_bpf	321
+#define	LINUX_SYS_linux_execveat	322
+#define	LINUX_SYS_linux_userfaultfd	323
+#define	LINUX_SYS_linux_membarrier	324
+#define	LINUX_SYS_linux_mlock2	325
+#define	LINUX_SYS_linux_copy_file_range	326
+#define	LINUX_SYS_linux_preadv2	327
+#define	LINUX_SYS_linux_pwritev2	328
+#define	LINUX_SYS_linux_pkey_mprotect	329
+#define	LINUX_SYS_linux_pkey_alloc	330
+#define	LINUX_SYS_linux_pkey_free	331
+#define	LINUX_SYS_MAXSYSCALL	333

Modified: stable/11/sys/amd64/linux/linux_syscalls.c
==============================================================================
--- stable/11/sys/amd64/linux/linux_syscalls.c	Wed Feb 22 19:39:54 2017	(r314106)
+++ stable/11/sys/amd64/linux/linux_syscalls.c	Wed Feb 22 19:57:59 2017	(r314107)
@@ -3,7 +3,7 @@
  *
  * DO NOT EDIT-- this file is automatically generated.
  * $FreeBSD$
- * created from FreeBSD: head/sys/amd64/linux/syscalls.master 302515 2016-07-10 08:15:50Z dchagin 
+ * created from FreeBSD: head/sys/amd64/linux/syscalls.master 313284 2017-02-05 14:17:09Z dchagin
  */
 
 const char *linux_syscallnames[] = {
@@ -217,7 +217,7 @@ const char *linux_syscallnames[] = {
 	"#206",			/* 206 = linux_io_setup */
 	"#207",			/* 207 = linux_io_destroy */
 	"#208",			/* 208 = linux_io_getevents */
-	"#209",			/* 209 = inux_io_submit */
+	"#209",			/* 209 = linux_io_submit */
 	"#210",			/* 210 = linux_io_cancel */
 	"#211",			/* 211 = linux_get_thread_area */
 	"linux_lookup_dcookie",			/* 212 = linux_lookup_dcookie */
@@ -291,7 +291,7 @@ const char *linux_syscallnames[] = {
 	"linux_utimensat",			/* 280 = linux_utimensat */
 	"linux_epoll_pwait",			/* 281 = linux_epoll_pwait */
 	"linux_signalfd",			/* 282 = linux_signalfd */
-	"linux_timerfd",			/* 283 = linux_timerfd */
+	"linux_timerfd_create",			/* 283 = linux_timerfd_create */
 	"linux_eventfd",			/* 284 = linux_eventfd */
 	"linux_fallocate",			/* 285 = linux_fallocate */
 	"linux_timerfd_settime",			/* 286 = linux_timerfd_settime */
@@ -305,7 +305,7 @@ const char *linux_syscallnames[] = {
 	"linux_inotify_init1",			/* 294 = linux_inotify_init1 */
 	"linux_preadv",			/* 295 = linux_preadv */
 	"linux_pwritev",			/* 296 = linux_pwritev */
-	"linux_rt_tsigqueueinfo",			/* 297 = linux_rt_tsigqueueinfo */
+	"linux_rt_tgsigqueueinfo",			/* 297 = linux_rt_tgsigqueueinfo */
 	"linux_perf_event_open",			/* 298 = linux_perf_event_open */
 	"linux_recvmmsg",			/* 299 = linux_recvmmsg */
 	"linux_fanotify_init",			/* 300 = linux_fanotify_init */
@@ -317,9 +317,28 @@ const char *linux_syscallnames[] = {
 	"linux_syncfs",			/* 306 = linux_syncfs */
 	"linux_sendmmsg",			/* 307 = linux_sendmmsg */
 	"linux_setns",			/* 308 = linux_setns */
-	"linux_process_vm_readv",			/* 309 = linux_process_vm_readv */
-	"linux_process_vm_writev",			/* 310 = linux_process_vm_writev */
-	"linux_kcmp",			/* 311 = linux_kcmp */
-	"linux_finit_module",			/* 312 = linux_finit_module */
-	"#313",			/* 313 = nosys */
+	"linux_getcpu",			/* 309 = linux_getcpu */
+	"linux_process_vm_readv",			/* 310 = linux_process_vm_readv */
+	"linux_process_vm_writev",			/* 311 = linux_process_vm_writev */
+	"linux_kcmp",			/* 312 = linux_kcmp */
+	"linux_finit_module",			/* 313 = linux_finit_module */
+	"linux_sched_setattr",			/* 314 = linux_sched_setattr */
+	"linux_sched_getattr",			/* 315 = linux_sched_getattr */
+	"linux_renameat2",			/* 316 = linux_renameat2 */
+	"linux_seccomp",			/* 317 = linux_seccomp */
+	"linux_getrandom",			/* 318 = linux_getrandom */
+	"linux_memfd_create",			/* 319 = linux_memfd_create */
+	"linux_kexec_file_load",			/* 320 = linux_kexec_file_load */
+	"linux_bpf",			/* 321 = linux_bpf */
+	"linux_execveat",			/* 322 = linux_execveat */
+	"linux_userfaultfd",			/* 323 = linux_userfaultfd */
+	"linux_membarrier",			/* 324 = linux_membarrier */
+	"linux_mlock2",			/* 325 = linux_mlock2 */
+	"linux_copy_file_range",			/* 326 = linux_copy_file_range */
+	"linux_preadv2",			/* 327 = linux_preadv2 */
+	"linux_pwritev2",			/* 328 = linux_pwritev2 */
+	"linux_pkey_mprotect",			/* 329 = linux_pkey_mprotect */
+	"linux_pkey_alloc",			/* 330 = linux_pkey_alloc */
+	"linux_pkey_free",			/* 331 = linux_pkey_free */
+	"#332",			/* 332 = nosys */
 };

Modified: stable/11/sys/amd64/linux/linux_sysent.c
==============================================================================
--- stable/11/sys/amd64/linux/linux_sysent.c	Wed Feb 22 19:39:54 2017	(r314106)
+++ stable/11/sys/amd64/linux/linux_sysent.c	Wed Feb 22 19:57:59 2017	(r314107)
@@ -3,7 +3,7 @@
  *
  * DO NOT EDIT-- this file is automatically generated.
  * $FreeBSD$
- * created from FreeBSD: head/sys/amd64/linux/syscalls.master 302515 2016-07-10 08:15:50Z dchagin 
+ * created from FreeBSD: head/sys/amd64/linux/syscalls.master 313284 2017-02-05 14:17:09Z dchagin
  */
 
 #include <sys/param.h>
@@ -227,7 +227,7 @@ struct sysent linux_sysent[] = {
 	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT },			/* 206 = linux_io_setup */
 	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT },			/* 207 = linux_io_destroy */
 	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT },			/* 208 = linux_io_getevents */
-	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT },			/* 209 = inux_io_submit */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT },			/* 209 = linux_io_submit */
 	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT },			/* 210 = linux_io_cancel */
 	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT },			/* 211 = linux_get_thread_area */
 	{ 0, (sy_call_t *)linux_lookup_dcookie, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 212 = linux_lookup_dcookie */
@@ -301,7 +301,7 @@ struct sysent linux_sysent[] = {
 	{ AS(linux_utimensat_args), (sy_call_t *)linux_utimensat, AUE_FUTIMESAT, NULL, 0, 0, 0, SY_THR_STATIC },	/* 280 = linux_utimensat */
 	{ AS(linux_epoll_pwait_args), (sy_call_t *)linux_epoll_pwait, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 281 = linux_epoll_pwait */
 	{ 0, (sy_call_t *)linux_signalfd, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 282 = linux_signalfd */
-	{ 0, (sy_call_t *)linux_timerfd, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 283 = linux_timerfd */
+	{ 0, (sy_call_t *)linux_timerfd_create, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 283 = linux_timerfd_create */
 	{ AS(linux_eventfd_args), (sy_call_t *)linux_eventfd, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 284 = linux_eventfd */
 	{ AS(linux_fallocate_args), (sy_call_t *)linux_fallocate, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 285 = linux_fallocate */
 	{ 0, (sy_call_t *)linux_timerfd_settime, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 286 = linux_timerfd_settime */
@@ -312,10 +312,10 @@ struct sysent linux_sysent[] = {
 	{ AS(linux_epoll_create1_args), (sy_call_t *)linux_epoll_create1, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 291 = linux_epoll_create1 */
 	{ AS(linux_dup3_args), (sy_call_t *)linux_dup3, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 292 = linux_dup3 */
 	{ AS(linux_pipe2_args), (sy_call_t *)linux_pipe2, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 293 = linux_pipe2 */
-	{ 0, (sy_call_t *)linux_inotify_init1, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 294 = linux_inotify_init1 */
-	{ 0, (sy_call_t *)linux_preadv, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 295 = linux_preadv */
-	{ 0, (sy_call_t *)linux_pwritev, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 296 = linux_pwritev */
-	{ 0, (sy_call_t *)linux_rt_tsigqueueinfo, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 297 = linux_rt_tsigqueueinfo */
+	{ AS(linux_inotify_init1_args), (sy_call_t *)linux_inotify_init1, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 294 = linux_inotify_init1 */
+	{ AS(linux_preadv_args), (sy_call_t *)linux_preadv, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 295 = linux_preadv */
+	{ AS(linux_pwritev_args), (sy_call_t *)linux_pwritev, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 296 = linux_pwritev */
+	{ AS(linux_rt_tgsigqueueinfo_args), (sy_call_t *)linux_rt_tgsigqueueinfo, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 297 = linux_rt_tgsigqueueinfo */
 	{ 0, (sy_call_t *)linux_perf_event_open, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 298 = linux_perf_event_open */
 	{ AS(linux_recvmmsg_args), (sy_call_t *)linux_recvmmsg, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 299 = linux_recvmmsg */
 	{ 0, (sy_call_t *)linux_fanotify_init, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 300 = linux_fanotify_init */
@@ -326,10 +326,29 @@ struct sysent linux_sysent[] = {
 	{ 0, (sy_call_t *)linux_clock_adjtime, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 305 = linux_clock_adjtime */
 	{ AS(linux_syncfs_args), (sy_call_t *)linux_syncfs, AUE_SYNC, NULL, 0, 0, 0, SY_THR_STATIC },	/* 306 = linux_syncfs */
 	{ AS(linux_sendmmsg_args), (sy_call_t *)linux_sendmmsg, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 307 = linux_sendmmsg */
-	{ 0, (sy_call_t *)linux_setns, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 308 = linux_setns */
-	{ 0, (sy_call_t *)linux_process_vm_readv, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 309 = linux_process_vm_readv */
-	{ 0, (sy_call_t *)linux_process_vm_writev, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 310 = linux_process_vm_writev */
-	{ 0, (sy_call_t *)linux_kcmp, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 311 = linux_kcmp */
-	{ 0, (sy_call_t *)linux_finit_module, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 312 = linux_finit_module */
-	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT },			/* 313 = nosys */
+	{ AS(linux_setns_args), (sy_call_t *)linux_setns, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 308 = linux_setns */
+	{ AS(linux_getcpu_args), (sy_call_t *)linux_getcpu, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 309 = linux_getcpu */
+	{ AS(linux_process_vm_readv_args), (sy_call_t *)linux_process_vm_readv, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 310 = 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 },	/* 311 = linux_process_vm_writev */
+	{ AS(linux_kcmp_args), (sy_call_t *)linux_kcmp, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 312 = linux_kcmp */
+	{ AS(linux_finit_module_args), (sy_call_t *)linux_finit_module, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 313 = linux_finit_module */
+	{ AS(linux_sched_setattr_args), (sy_call_t *)linux_sched_setattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 314 = linux_sched_setattr */
+	{ AS(linux_sched_getattr_args), (sy_call_t *)linux_sched_getattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 315 = linux_sched_getattr */
+	{ AS(linux_renameat2_args), (sy_call_t *)linux_renameat2, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 316 = linux_renameat2 */
+	{ AS(linux_seccomp_args), (sy_call_t *)linux_seccomp, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 317 = linux_seccomp */
+	{ AS(linux_getrandom_args), (sy_call_t *)linux_getrandom, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 318 = linux_getrandom */
+	{ AS(linux_memfd_create_args), (sy_call_t *)linux_memfd_create, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 319 = linux_memfd_create */
+	{ AS(linux_kexec_file_load_args), (sy_call_t *)linux_kexec_file_load, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 320 = linux_kexec_file_load */
+	{ AS(linux_bpf_args), (sy_call_t *)linux_bpf, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 321 = linux_bpf */
+	{ AS(linux_execveat_args), (sy_call_t *)linux_execveat, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 322 = linux_execveat */
+	{ AS(linux_userfaultfd_args), (sy_call_t *)linux_userfaultfd, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 323 = linux_userfaultfd */
+	{ AS(linux_membarrier_args), (sy_call_t *)linux_membarrier, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 324 = linux_membarrier */
+	{ AS(linux_mlock2_args), (sy_call_t *)linux_mlock2, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 325 = linux_mlock2 */
+	{ AS(linux_copy_file_range_args), (sy_call_t *)linux_copy_file_range, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 326 = linux_copy_file_range */
+	{ AS(linux_preadv2_args), (sy_call_t *)linux_preadv2, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 327 = linux_preadv2 */
+	{ AS(linux_pwritev2_args), (sy_call_t *)linux_pwritev2, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 328 = linux_pwritev2 */
+	{ AS(linux_pkey_mprotect_args), (sy_call_t *)linux_pkey_mprotect, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 329 = linux_pkey_mprotect */
+	{ AS(linux_pkey_alloc_args), (sy_call_t *)linux_pkey_alloc, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 330 = linux_pkey_alloc */
+	{ AS(linux_pkey_free_args), (sy_call_t *)linux_pkey_free, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 331 = linux_pkey_free */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT },			/* 332 = nosys */
 };

Modified: stable/11/sys/amd64/linux/linux_systrace_args.c
==============================================================================
--- stable/11/sys/amd64/linux/linux_systrace_args.c	Wed Feb 22 19:39:54 2017	(r314106)
+++ stable/11/sys/amd64/linux/linux_systrace_args.c	Wed Feb 22 19:57:59 2017	(r314107)
@@ -2076,7 +2076,7 @@ systrace_args(int sysnum, void *params, 
 		*n_args = 0;
 		break;
 	}
-	/* linux_timerfd */
+	/* linux_timerfd_create */
 	case 283: {
 		*n_args = 0;
 		break;
@@ -2157,22 +2157,41 @@ systrace_args(int sysnum, void *params, 
 	}
 	/* linux_inotify_init1 */
 	case 294: {
-		*n_args = 0;
+		struct linux_inotify_init1_args *p = params;
+		iarg[0] = p->flags; /* l_int */
+		*n_args = 1;
 		break;
 	}
 	/* linux_preadv */
 	case 295: {
-		*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 296: {
-		*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 297: {
-		*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 */
@@ -2245,27 +2264,235 @@ systrace_args(int sysnum, void *params, 
 	}
 	/* linux_setns */
 	case 308: {
-		*n_args = 0;
+		struct linux_setns_args *p = params;
+		iarg[0] = p->fd; /* l_int */
+		iarg[1] = p->nstype; /* l_int */
+		*n_args = 2;
 		break;
 	}
-	/* linux_process_vm_readv */
+	/* linux_getcpu */
 	case 309: {
-		*n_args = 0;
+		struct linux_getcpu_args *p = params;
+		uarg[0] = (intptr_t) p->cpu; /* l_uint * */
+		uarg[1] = (intptr_t) p->node; /* l_uint * */
+		uarg[2] = (intptr_t) p->cache; /* void * */
+		*n_args = 3;
 		break;
 	}
-	/* linux_process_vm_writev */
+	/* linux_process_vm_readv */
 	case 310: {
-		*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_kcmp */
+	/* linux_process_vm_writev */
 	case 311: {
-		*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_finit_module */
+	/* linux_kcmp */
 	case 312: {
-		*n_args = 0;
+		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 313: {
+		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 314: {
+		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 315: {
+		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 316: {
+		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 317: {
+		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 318: {
+		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 319: {
+		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_kexec_file_load */
+	case 320: {
+		struct linux_kexec_file_load_args *p = params;
+		iarg[0] = p->kernel_fd; /* l_int */
+		iarg[1] = p->initrd_fd; /* l_int */
+		iarg[2] = p->cmdline_len; /* l_ulong */
+		uarg[3] = (intptr_t) p->cmdline_ptr; /* const char * */
+		iarg[4] = p->flags; /* l_ulong */
+		*n_args = 5;
+		break;
+	}
+	/* linux_bpf */
+	case 321: {
+		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 322: {
+		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_userfaultfd */
+	case 323: {
+		struct linux_userfaultfd_args *p = params;
+		iarg[0] = p->flags; /* l_int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_membarrier */
+	case 324: {
+		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 325: {
+		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 326: {
+		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 327: {
+		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 328: {
+		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 329: {
+		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 330: {
+		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 331: {
+		struct linux_pkey_free_args *p = params;
+		iarg[0] = p->pkey; /* l_int */
+		*n_args = 1;
 		break;
 	}
 	default:
@@ -5415,7 +5642,7 @@ systrace_entry_setargdesc(int sysnum, in
 	/* linux_signalfd */
 	case 282:
 		break;
-	/* linux_timerfd */
+	/* linux_timerfd_create */
 	case 283:
 		break;
 	/* linux_eventfd */
@@ -5529,15 +5756,76 @@ systrace_entry_setargdesc(int sysnum, in
 		break;
 	/* linux_inotify_init1 */
 	case 294:
+		switch(ndx) {
+		case 0:
+			p = "l_int";
+			break;
+		default:
+			break;
+		};
 		break;
 	/* linux_preadv */
 	case 295:
+		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 296:
+		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 297:
+		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 298:
@@ -5629,28 +5917,448 @@ systrace_entry_setargdesc(int sysnum, in
 		break;
 	/* linux_setns */
 	case 308:
+		switch(ndx) {
+		case 0:
+			p = "l_int";
+			break;

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201702221957.v1MJvxvD043737>