From owner-svn-src-all@freebsd.org Wed Feb 5 16:54:20 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6B37324EE1B; Wed, 5 Feb 2020 16:54:20 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48CSMc2xjpz3GYY; Wed, 5 Feb 2020 16:54:20 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5FFF85C5F; Wed, 5 Feb 2020 16:54:20 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 015GsKvP057953; Wed, 5 Feb 2020 16:54:20 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 015GsHRQ057938; Wed, 5 Feb 2020 16:54:17 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202002051654.015GsHRQ057938@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 5 Feb 2020 16:54:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r357578 - in head/sys: amd64/linux32 arm/linux i386/linux X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: in head/sys: amd64/linux32 arm/linux i386/linux X-SVN-Commit-Revision: 357578 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Feb 2020 16:54:20 -0000 Author: emaste Date: Wed Feb 5 16:54:16 2020 New Revision: 357578 URL: https://svnweb.freebsd.org/changeset/base/357578 Log: regen linuxulator sysent after r357577 Modified: head/sys/amd64/linux32/linux32_proto.h head/sys/amd64/linux32/linux32_syscall.h head/sys/amd64/linux32/linux32_syscalls.c head/sys/amd64/linux32/linux32_sysent.c head/sys/amd64/linux32/linux32_systrace_args.c head/sys/arm/linux/linux_proto.h head/sys/arm/linux/linux_syscall.h head/sys/arm/linux/linux_syscalls.c head/sys/arm/linux/linux_sysent.c head/sys/arm/linux/linux_systrace_args.c head/sys/i386/linux/linux_proto.h head/sys/i386/linux/linux_syscall.h head/sys/i386/linux/linux_syscalls.c head/sys/i386/linux/linux_sysent.c head/sys/i386/linux/linux_systrace_args.c Modified: head/sys/amd64/linux32/linux32_proto.h ============================================================================== --- head/sys/amd64/linux32/linux32_proto.h Wed Feb 5 16:53:02 2020 (r357577) +++ head/sys/amd64/linux32/linux32_proto.h Wed Feb 5 16:54:16 2020 (r357578) @@ -606,7 +606,10 @@ struct linux_sigaltstack_args { char uoss_l_[PADL_(l_stack_t *)]; l_stack_t * uoss; char uoss_r_[PADR_(l_stack_t *)]; }; struct linux_sendfile_args { - register_t dummy; + char out_l_[PADL_(l_int)]; l_int out; char out_r_[PADR_(l_int)]; + char in_l_[PADL_(l_int)]; l_int in; char in_r_[PADR_(l_int)]; + char offset_l_[PADL_(l_long *)]; l_long * offset; char offset_r_[PADR_(l_long *)]; + char count_l_[PADL_(l_size_t)]; l_size_t count; char count_r_[PADR_(l_size_t)]; }; struct linux_vfork_args { register_t dummy; @@ -737,6 +740,12 @@ struct linux_tkill_args { char tid_l_[PADL_(int)]; int tid; char tid_r_[PADR_(int)]; char sig_l_[PADL_(int)]; int sig; char sig_r_[PADR_(int)]; }; +struct linux_sendfile64_args { + char out_l_[PADL_(l_int)]; l_int out; char out_r_[PADR_(l_int)]; + char in_l_[PADL_(l_int)]; l_int in; char in_r_[PADR_(l_int)]; + char offset_l_[PADL_(l_loff_t *)]; l_loff_t * offset; char offset_r_[PADR_(l_loff_t *)]; + char count_l_[PADL_(l_size_t)]; l_size_t count; char count_r_[PADR_(l_size_t)]; +}; struct linux_sys_futex_args { char uaddr_l_[PADL_(void *)]; void * uaddr; char uaddr_r_[PADR_(void *)]; char op_l_[PADL_(int)]; int op; char op_r_[PADR_(int)]; @@ -1698,6 +1707,7 @@ int linux_removexattr(struct thread *, struct linux_re int linux_lremovexattr(struct thread *, struct linux_lremovexattr_args *); int linux_fremovexattr(struct thread *, struct linux_fremovexattr_args *); int linux_tkill(struct thread *, struct linux_tkill_args *); +int linux_sendfile64(struct thread *, struct linux_sendfile64_args *); int linux_sys_futex(struct thread *, struct linux_sys_futex_args *); int linux_sched_setaffinity(struct thread *, struct linux_sched_setaffinity_args *); int linux_sched_getaffinity(struct thread *, struct linux_sched_getaffinity_args *); @@ -2092,6 +2102,7 @@ int linux_io_uring_register(struct thread *, struct li #define LINUX32_SYS_AUE_linux_lremovexattr AUE_NULL #define LINUX32_SYS_AUE_linux_fremovexattr AUE_NULL #define LINUX32_SYS_AUE_linux_tkill AUE_NULL +#define LINUX32_SYS_AUE_linux_sendfile64 AUE_SENDFILE #define LINUX32_SYS_AUE_linux_sys_futex AUE_NULL #define LINUX32_SYS_AUE_linux_sched_setaffinity AUE_NULL #define LINUX32_SYS_AUE_linux_sched_getaffinity AUE_NULL Modified: head/sys/amd64/linux32/linux32_syscall.h ============================================================================== --- head/sys/amd64/linux32/linux32_syscall.h Wed Feb 5 16:53:02 2020 (r357577) +++ head/sys/amd64/linux32/linux32_syscall.h Wed Feb 5 16:54:16 2020 (r357578) @@ -216,6 +216,7 @@ #define LINUX32_SYS_linux_lremovexattr 236 #define LINUX32_SYS_linux_fremovexattr 237 #define LINUX32_SYS_linux_tkill 238 +#define LINUX32_SYS_linux_sendfile64 239 #define LINUX32_SYS_linux_sys_futex 240 #define LINUX32_SYS_linux_sched_setaffinity 241 #define LINUX32_SYS_linux_sched_getaffinity 242 Modified: head/sys/amd64/linux32/linux32_syscalls.c ============================================================================== --- head/sys/amd64/linux32/linux32_syscalls.c Wed Feb 5 16:53:02 2020 (r357577) +++ head/sys/amd64/linux32/linux32_syscalls.c Wed Feb 5 16:54:16 2020 (r357578) @@ -246,7 +246,7 @@ const char *linux32_syscallnames[] = { "linux_lremovexattr", /* 236 = linux_lremovexattr */ "linux_fremovexattr", /* 237 = linux_fremovexattr */ "linux_tkill", /* 238 = linux_tkill */ - "#239", /* 239 = linux_sendfile64 */ + "linux_sendfile64", /* 239 = linux_sendfile64 */ "linux_sys_futex", /* 240 = linux_sys_futex */ "linux_sched_setaffinity", /* 241 = linux_sched_setaffinity */ "linux_sched_getaffinity", /* 242 = linux_sched_getaffinity */ Modified: head/sys/amd64/linux32/linux32_sysent.c ============================================================================== --- head/sys/amd64/linux32/linux32_sysent.c Wed Feb 5 16:53:02 2020 (r357577) +++ head/sys/amd64/linux32/linux32_sysent.c Wed Feb 5 16:54:16 2020 (r357578) @@ -204,7 +204,7 @@ struct sysent linux32_sysent[] = { { AS(linux_capget_args), (sy_call_t *)linux_capget, AUE_CAPGET, NULL, 0, 0, 0, SY_THR_STATIC }, /* 184 = linux_capget */ { AS(linux_capset_args), (sy_call_t *)linux_capset, AUE_CAPSET, NULL, 0, 0, 0, SY_THR_STATIC }, /* 185 = linux_capset */ { AS(linux_sigaltstack_args), (sy_call_t *)linux_sigaltstack, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 186 = linux_sigaltstack */ - { 0, (sy_call_t *)linux_sendfile, AUE_SENDFILE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 187 = linux_sendfile */ + { AS(linux_sendfile_args), (sy_call_t *)linux_sendfile, AUE_SENDFILE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 187 = linux_sendfile */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 188 = getpmsg */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 189 = putpmsg */ { 0, (sy_call_t *)linux_vfork, AUE_VFORK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 190 = linux_vfork */ @@ -256,7 +256,7 @@ struct sysent linux32_sysent[] = { { 0, (sy_call_t *)linux_lremovexattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 236 = linux_lremovexattr */ { 0, (sy_call_t *)linux_fremovexattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 237 = linux_fremovexattr */ { AS(linux_tkill_args), (sy_call_t *)linux_tkill, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 238 = linux_tkill */ - { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 239 = linux_sendfile64 */ + { AS(linux_sendfile64_args), (sy_call_t *)linux_sendfile64, AUE_SENDFILE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 239 = linux_sendfile64 */ { AS(linux_sys_futex_args), (sy_call_t *)linux_sys_futex, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 240 = linux_sys_futex */ { AS(linux_sched_setaffinity_args), (sy_call_t *)linux_sched_setaffinity, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 241 = linux_sched_setaffinity */ { AS(linux_sched_getaffinity_args), (sy_call_t *)linux_sched_getaffinity, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 242 = linux_sched_getaffinity */ Modified: head/sys/amd64/linux32/linux32_systrace_args.c ============================================================================== --- head/sys/amd64/linux32/linux32_systrace_args.c Wed Feb 5 16:53:02 2020 (r357577) +++ head/sys/amd64/linux32/linux32_systrace_args.c Wed Feb 5 16:54:16 2020 (r357578) @@ -1294,7 +1294,12 @@ systrace_args(int sysnum, void *params, uint64_t *uarg } /* linux_sendfile */ case 187: { - *n_args = 0; + struct linux_sendfile_args *p = params; + iarg[0] = p->out; /* l_int */ + iarg[1] = p->in; /* l_int */ + uarg[2] = (intptr_t) p->offset; /* l_long * */ + iarg[3] = p->count; /* l_size_t */ + *n_args = 4; break; } /* linux_vfork */ @@ -1620,6 +1625,16 @@ systrace_args(int sysnum, void *params, uint64_t *uarg *n_args = 2; break; } + /* linux_sendfile64 */ + case 239: { + struct linux_sendfile64_args *p = params; + iarg[0] = p->out; /* l_int */ + iarg[1] = p->in; /* l_int */ + uarg[2] = (intptr_t) p->offset; /* l_loff_t * */ + iarg[3] = p->count; /* l_size_t */ + *n_args = 4; + break; + } /* linux_sys_futex */ case 240: { struct linux_sys_futex_args *p = params; @@ -4987,6 +5002,22 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *d break; /* linux_sendfile */ case 187: + switch(ndx) { + case 0: + p = "l_int"; + break; + case 1: + p = "l_int"; + break; + case 2: + p = "userland l_long *"; + break; + case 3: + p = "l_size_t"; + break; + default: + break; + }; break; /* linux_vfork */ case 190: @@ -5432,6 +5463,25 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *d break; }; break; + /* linux_sendfile64 */ + case 239: + switch(ndx) { + case 0: + p = "l_int"; + break; + case 1: + p = "l_int"; + break; + case 2: + p = "userland l_loff_t *"; + break; + case 3: + p = "l_size_t"; + break; + default: + break; + }; + break; /* linux_sys_futex */ case 240: switch(ndx) { @@ -8305,6 +8355,9 @@ systrace_return_setargdesc(int sysnum, int ndx, char * break; /* linux_sendfile */ case 187: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_vfork */ case 190: /* linux_getrlimit */ @@ -8475,6 +8528,11 @@ systrace_return_setargdesc(int sysnum, int ndx, char * case 237: /* linux_tkill */ case 238: + if (ndx == 0 || ndx == 1) + p = "int"; + break; + /* linux_sendfile64 */ + case 239: if (ndx == 0 || ndx == 1) p = "int"; break; Modified: head/sys/arm/linux/linux_proto.h ============================================================================== --- head/sys/arm/linux/linux_proto.h Wed Feb 5 16:53:02 2020 (r357577) +++ head/sys/arm/linux/linux_proto.h Wed Feb 5 16:54:16 2020 (r357578) @@ -509,7 +509,10 @@ struct linux_sigaltstack_args { char uoss_l_[PADL_(l_stack_t *)]; l_stack_t * uoss; char uoss_r_[PADR_(l_stack_t *)]; }; struct linux_sendfile_args { - register_t dummy; + char out_l_[PADL_(l_int)]; l_int out; char out_r_[PADR_(l_int)]; + char in_l_[PADL_(l_int)]; l_int in; char in_r_[PADR_(l_int)]; + char offset_l_[PADL_(l_long *)]; l_long * offset; char offset_r_[PADR_(l_long *)]; + char count_l_[PADL_(l_size_t)]; l_size_t count; char count_r_[PADR_(l_size_t)]; }; struct linux_vfork_args { register_t dummy; @@ -638,6 +641,12 @@ struct linux_tkill_args { char tid_l_[PADL_(int)]; int tid; char tid_r_[PADR_(int)]; char sig_l_[PADL_(int)]; int sig; char sig_r_[PADR_(int)]; }; +struct linux_sendfile64_args { + char out_l_[PADL_(l_int)]; l_int out; char out_r_[PADR_(l_int)]; + char in_l_[PADL_(l_int)]; l_int in; char in_r_[PADR_(l_int)]; + char offset_l_[PADL_(l_loff_t *)]; l_loff_t * offset; char offset_r_[PADR_(l_loff_t *)]; + char count_l_[PADL_(l_size_t)]; l_size_t count; char count_r_[PADR_(l_size_t)]; +}; struct linux_sys_futex_args { char uaddr_l_[PADL_(void *)]; void * uaddr; char uaddr_r_[PADR_(void *)]; char op_l_[PADL_(int)]; int op; char op_r_[PADR_(int)]; @@ -1371,6 +1380,7 @@ int linux_removexattr(struct thread *, struct linux_re int linux_lremovexattr(struct thread *, struct linux_lremovexattr_args *); int linux_fremovexattr(struct thread *, struct linux_fremovexattr_args *); int linux_tkill(struct thread *, struct linux_tkill_args *); +int linux_sendfile64(struct thread *, struct linux_sendfile64_args *); int linux_sys_futex(struct thread *, struct linux_sys_futex_args *); int linux_sched_setaffinity(struct thread *, struct linux_sched_setaffinity_args *); int linux_sched_getaffinity(struct thread *, struct linux_sched_getaffinity_args *); @@ -1696,6 +1706,7 @@ int linux_set_tls(struct thread *, struct linux_set_tl #define LINUX_SYS_AUE_linux_lremovexattr AUE_NULL #define LINUX_SYS_AUE_linux_fremovexattr AUE_NULL #define LINUX_SYS_AUE_linux_tkill AUE_NULL +#define LINUX_SYS_AUE_linux_sendfile64 AUE_SENDFILE #define LINUX_SYS_AUE_linux_sys_futex AUE_NULL #define LINUX_SYS_AUE_linux_sched_setaffinity AUE_NULL #define LINUX_SYS_AUE_linux_sched_getaffinity AUE_NULL Modified: head/sys/arm/linux/linux_syscall.h ============================================================================== --- head/sys/arm/linux/linux_syscall.h Wed Feb 5 16:53:02 2020 (r357577) +++ head/sys/arm/linux/linux_syscall.h Wed Feb 5 16:54:16 2020 (r357578) @@ -195,6 +195,7 @@ #define LINUX_SYS_linux_lremovexattr 236 #define LINUX_SYS_linux_fremovexattr 237 #define LINUX_SYS_linux_tkill 238 +#define LINUX_SYS_linux_sendfile64 239 #define LINUX_SYS_linux_sys_futex 240 #define LINUX_SYS_linux_sched_setaffinity 241 #define LINUX_SYS_linux_sched_getaffinity 242 Modified: head/sys/arm/linux/linux_syscalls.c ============================================================================== --- head/sys/arm/linux/linux_syscalls.c Wed Feb 5 16:53:02 2020 (r357577) +++ head/sys/arm/linux/linux_syscalls.c Wed Feb 5 16:54:16 2020 (r357578) @@ -246,7 +246,7 @@ const char *linux_syscallnames[] = { "linux_lremovexattr", /* 236 = linux_lremovexattr */ "linux_fremovexattr", /* 237 = linux_fremovexattr */ "linux_tkill", /* 238 = linux_tkill */ - "#239", /* 239 = linux_sendfile64 */ + "linux_sendfile64", /* 239 = linux_sendfile64 */ "linux_sys_futex", /* 240 = linux_sys_futex */ "linux_sched_setaffinity", /* 241 = linux_sched_setaffinity */ "linux_sched_getaffinity", /* 242 = linux_sched_getaffinity */ Modified: head/sys/arm/linux/linux_sysent.c ============================================================================== --- head/sys/arm/linux/linux_sysent.c Wed Feb 5 16:53:02 2020 (r357577) +++ head/sys/arm/linux/linux_sysent.c Wed Feb 5 16:54:16 2020 (r357578) @@ -204,7 +204,7 @@ struct sysent linux_sysent[] = { { AS(linux_capget_args), (sy_call_t *)linux_capget, AUE_CAPGET, NULL, 0, 0, 0, SY_THR_STATIC }, /* 184 = linux_capget */ { AS(linux_capset_args), (sy_call_t *)linux_capset, AUE_CAPSET, NULL, 0, 0, 0, SY_THR_STATIC }, /* 185 = linux_capset */ { AS(linux_sigaltstack_args), (sy_call_t *)linux_sigaltstack, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 186 = linux_sigaltstack */ - { 0, (sy_call_t *)linux_sendfile, AUE_SENDFILE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 187 = linux_sendfile */ + { AS(linux_sendfile_args), (sy_call_t *)linux_sendfile, AUE_SENDFILE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 187 = linux_sendfile */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 188 = ; */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 189 = ; */ { 0, (sy_call_t *)linux_vfork, AUE_VFORK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 190 = linux_vfork */ @@ -256,7 +256,7 @@ struct sysent linux_sysent[] = { { 0, (sy_call_t *)linux_lremovexattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 236 = linux_lremovexattr */ { 0, (sy_call_t *)linux_fremovexattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 237 = linux_fremovexattr */ { AS(linux_tkill_args), (sy_call_t *)linux_tkill, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 238 = linux_tkill */ - { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 239 = linux_sendfile64 */ + { AS(linux_sendfile64_args), (sy_call_t *)linux_sendfile64, AUE_SENDFILE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 239 = linux_sendfile64 */ { AS(linux_sys_futex_args), (sy_call_t *)linux_sys_futex, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 240 = linux_sys_futex */ { AS(linux_sched_setaffinity_args), (sy_call_t *)linux_sched_setaffinity, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 241 = linux_sched_setaffinity */ { AS(linux_sched_getaffinity_args), (sy_call_t *)linux_sched_getaffinity, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 242 = linux_sched_getaffinity */ Modified: head/sys/arm/linux/linux_systrace_args.c ============================================================================== --- head/sys/arm/linux/linux_systrace_args.c Wed Feb 5 16:53:02 2020 (r357577) +++ head/sys/arm/linux/linux_systrace_args.c Wed Feb 5 16:54:16 2020 (r357578) @@ -1135,7 +1135,12 @@ systrace_args(int sysnum, void *params, uint64_t *uarg } /* linux_sendfile */ case 187: { - *n_args = 0; + struct linux_sendfile_args *p = params; + iarg[0] = p->out; /* l_int */ + iarg[1] = p->in; /* l_int */ + uarg[2] = (intptr_t) p->offset; /* l_long * */ + iarg[3] = p->count; /* l_size_t */ + *n_args = 4; break; } /* linux_vfork */ @@ -1459,6 +1464,16 @@ systrace_args(int sysnum, void *params, uint64_t *uarg *n_args = 2; break; } + /* linux_sendfile64 */ + case 239: { + struct linux_sendfile64_args *p = params; + iarg[0] = p->out; /* l_int */ + iarg[1] = p->in; /* l_int */ + uarg[2] = (intptr_t) p->offset; /* l_loff_t * */ + iarg[3] = p->count; /* l_size_t */ + *n_args = 4; + break; + } /* linux_sys_futex */ case 240: { struct linux_sys_futex_args *p = params; @@ -4248,6 +4263,22 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *d break; /* linux_sendfile */ case 187: + switch(ndx) { + case 0: + p = "l_int"; + break; + case 1: + p = "l_int"; + break; + case 2: + p = "userland l_long *"; + break; + case 3: + p = "l_size_t"; + break; + default: + break; + }; break; /* linux_vfork */ case 190: @@ -4687,6 +4718,25 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *d break; }; break; + /* linux_sendfile64 */ + case 239: + switch(ndx) { + case 0: + p = "l_int"; + break; + case 1: + p = "l_int"; + break; + case 2: + p = "userland l_loff_t *"; + break; + case 3: + p = "l_size_t"; + break; + default: + break; + }; + break; /* linux_sys_futex */ case 240: switch(ndx) { @@ -6978,6 +7028,9 @@ systrace_return_setargdesc(int sysnum, int ndx, char * break; /* linux_sendfile */ case 187: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_vfork */ case 190: /* linux_getrlimit */ @@ -7148,6 +7201,11 @@ systrace_return_setargdesc(int sysnum, int ndx, char * case 237: /* linux_tkill */ case 238: + if (ndx == 0 || ndx == 1) + p = "int"; + break; + /* linux_sendfile64 */ + case 239: if (ndx == 0 || ndx == 1) p = "int"; break; Modified: head/sys/i386/linux/linux_proto.h ============================================================================== --- head/sys/i386/linux/linux_proto.h Wed Feb 5 16:53:02 2020 (r357577) +++ head/sys/i386/linux/linux_proto.h Wed Feb 5 16:54:16 2020 (r357578) @@ -605,7 +605,10 @@ struct linux_sigaltstack_args { char uoss_l_[PADL_(l_stack_t *)]; l_stack_t * uoss; char uoss_r_[PADR_(l_stack_t *)]; }; struct linux_sendfile_args { - register_t dummy; + char out_l_[PADL_(l_int)]; l_int out; char out_r_[PADR_(l_int)]; + char in_l_[PADL_(l_int)]; l_int in; char in_r_[PADR_(l_int)]; + char offset_l_[PADL_(l_long *)]; l_long * offset; char offset_r_[PADR_(l_long *)]; + char count_l_[PADL_(l_size_t)]; l_size_t count; char count_r_[PADR_(l_size_t)]; }; struct linux_vfork_args { register_t dummy; @@ -734,6 +737,12 @@ struct linux_tkill_args { char tid_l_[PADL_(int)]; int tid; char tid_r_[PADR_(int)]; char sig_l_[PADL_(int)]; int sig; char sig_r_[PADR_(int)]; }; +struct linux_sendfile64_args { + char out_l_[PADL_(l_int)]; l_int out; char out_r_[PADR_(l_int)]; + char in_l_[PADL_(l_int)]; l_int in; char in_r_[PADR_(l_int)]; + char offset_l_[PADL_(l_loff_t *)]; l_loff_t * offset; char offset_r_[PADR_(l_loff_t *)]; + char count_l_[PADL_(l_size_t)]; l_size_t count; char count_r_[PADR_(l_size_t)]; +}; struct linux_sys_futex_args { char uaddr_l_[PADL_(void *)]; void * uaddr; char uaddr_r_[PADR_(void *)]; char op_l_[PADL_(int)]; int op; char op_r_[PADR_(int)]; @@ -1706,6 +1715,7 @@ int linux_removexattr(struct thread *, struct linux_re int linux_lremovexattr(struct thread *, struct linux_lremovexattr_args *); int linux_fremovexattr(struct thread *, struct linux_fremovexattr_args *); int linux_tkill(struct thread *, struct linux_tkill_args *); +int linux_sendfile64(struct thread *, struct linux_sendfile64_args *); int linux_sys_futex(struct thread *, struct linux_sys_futex_args *); int linux_sched_setaffinity(struct thread *, struct linux_sched_setaffinity_args *); int linux_sched_getaffinity(struct thread *, struct linux_sched_getaffinity_args *); @@ -2102,6 +2112,7 @@ int linux_io_uring_register(struct thread *, struct li #define LINUX_SYS_AUE_linux_lremovexattr AUE_NULL #define LINUX_SYS_AUE_linux_fremovexattr AUE_NULL #define LINUX_SYS_AUE_linux_tkill AUE_NULL +#define LINUX_SYS_AUE_linux_sendfile64 AUE_SENDFILE #define LINUX_SYS_AUE_linux_sys_futex AUE_NULL #define LINUX_SYS_AUE_linux_sched_setaffinity AUE_NULL #define LINUX_SYS_AUE_linux_sched_getaffinity AUE_NULL Modified: head/sys/i386/linux/linux_syscall.h ============================================================================== --- head/sys/i386/linux/linux_syscall.h Wed Feb 5 16:53:02 2020 (r357577) +++ head/sys/i386/linux/linux_syscall.h Wed Feb 5 16:54:16 2020 (r357578) @@ -222,6 +222,7 @@ #define LINUX_SYS_linux_lremovexattr 236 #define LINUX_SYS_linux_fremovexattr 237 #define LINUX_SYS_linux_tkill 238 +#define LINUX_SYS_linux_sendfile64 239 #define LINUX_SYS_linux_sys_futex 240 #define LINUX_SYS_linux_sched_setaffinity 241 #define LINUX_SYS_linux_sched_getaffinity 242 Modified: head/sys/i386/linux/linux_syscalls.c ============================================================================== --- head/sys/i386/linux/linux_syscalls.c Wed Feb 5 16:53:02 2020 (r357577) +++ head/sys/i386/linux/linux_syscalls.c Wed Feb 5 16:54:16 2020 (r357578) @@ -246,7 +246,7 @@ const char *linux_syscallnames[] = { "linux_lremovexattr", /* 236 = linux_lremovexattr */ "linux_fremovexattr", /* 237 = linux_fremovexattr */ "linux_tkill", /* 238 = linux_tkill */ - "#239", /* 239 = linux_sendfile64 */ + "linux_sendfile64", /* 239 = linux_sendfile64 */ "linux_sys_futex", /* 240 = linux_sys_futex */ "linux_sched_setaffinity", /* 241 = linux_sched_setaffinity */ "linux_sched_getaffinity", /* 242 = linux_sched_getaffinity */ Modified: head/sys/i386/linux/linux_sysent.c ============================================================================== --- head/sys/i386/linux/linux_sysent.c Wed Feb 5 16:53:02 2020 (r357577) +++ head/sys/i386/linux/linux_sysent.c Wed Feb 5 16:54:16 2020 (r357578) @@ -204,7 +204,7 @@ struct sysent linux_sysent[] = { { AS(linux_capget_args), (sy_call_t *)linux_capget, AUE_CAPGET, NULL, 0, 0, 0, SY_THR_STATIC }, /* 184 = linux_capget */ { AS(linux_capset_args), (sy_call_t *)linux_capset, AUE_CAPSET, NULL, 0, 0, 0, SY_THR_STATIC }, /* 185 = linux_capset */ { AS(linux_sigaltstack_args), (sy_call_t *)linux_sigaltstack, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 186 = linux_sigaltstack */ - { 0, (sy_call_t *)linux_sendfile, AUE_SENDFILE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 187 = linux_sendfile */ + { AS(linux_sendfile_args), (sy_call_t *)linux_sendfile, AUE_SENDFILE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 187 = linux_sendfile */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 188 = getpmsg */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 189 = putpmsg */ { 0, (sy_call_t *)linux_vfork, AUE_VFORK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 190 = linux_vfork */ @@ -256,7 +256,7 @@ struct sysent linux_sysent[] = { { 0, (sy_call_t *)linux_lremovexattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 236 = linux_lremovexattr */ { 0, (sy_call_t *)linux_fremovexattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 237 = linux_fremovexattr */ { AS(linux_tkill_args), (sy_call_t *)linux_tkill, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 238 = linux_tkill */ - { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 239 = linux_sendfile64 */ + { AS(linux_sendfile64_args), (sy_call_t *)linux_sendfile64, AUE_SENDFILE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 239 = linux_sendfile64 */ { AS(linux_sys_futex_args), (sy_call_t *)linux_sys_futex, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 240 = linux_sys_futex */ { AS(linux_sched_setaffinity_args), (sy_call_t *)linux_sched_setaffinity, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 241 = linux_sched_setaffinity */ { AS(linux_sched_getaffinity_args), (sy_call_t *)linux_sched_getaffinity, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 242 = linux_sched_getaffinity */ Modified: head/sys/i386/linux/linux_systrace_args.c ============================================================================== --- head/sys/i386/linux/linux_systrace_args.c Wed Feb 5 16:53:02 2020 (r357577) +++ head/sys/i386/linux/linux_systrace_args.c Wed Feb 5 16:54:16 2020 (r357578) @@ -1335,7 +1335,12 @@ systrace_args(int sysnum, void *params, uint64_t *uarg } /* linux_sendfile */ case 187: { - *n_args = 0; + struct linux_sendfile_args *p = params; + iarg[0] = p->out; /* l_int */ + iarg[1] = p->in; /* l_int */ + uarg[2] = (intptr_t) p->offset; /* l_long * */ + iarg[3] = p->count; /* l_size_t */ + *n_args = 4; break; } /* linux_vfork */ @@ -1659,6 +1664,16 @@ systrace_args(int sysnum, void *params, uint64_t *uarg *n_args = 2; break; } + /* linux_sendfile64 */ + case 239: { + struct linux_sendfile64_args *p = params; + iarg[0] = p->out; /* l_int */ + iarg[1] = p->in; /* l_int */ + uarg[2] = (intptr_t) p->offset; /* l_loff_t * */ + iarg[3] = p->count; /* l_size_t */ + *n_args = 4; + break; + } /* linux_sys_futex */ case 240: { struct linux_sys_futex_args *p = params; @@ -5107,6 +5122,22 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *d break; /* linux_sendfile */ case 187: + switch(ndx) { + case 0: + p = "l_int"; + break; + case 1: + p = "l_int"; + break; + case 2: + p = "userland l_long *"; + break; + case 3: + p = "l_size_t"; + break; + default: + break; + }; break; /* linux_vfork */ case 190: @@ -5546,6 +5577,25 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *d break; }; break; + /* linux_sendfile64 */ + case 239: + switch(ndx) { + case 0: + p = "l_int"; + break; + case 1: + p = "l_int"; + break; + case 2: + p = "userland l_loff_t *"; + break; + case 3: + p = "l_size_t"; + break; + default: + break; + }; + break; /* linux_sys_futex */ case 240: switch(ndx) { @@ -8516,6 +8566,9 @@ systrace_return_setargdesc(int sysnum, int ndx, char * break; /* linux_sendfile */ case 187: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_vfork */ case 190: /* linux_getrlimit */ @@ -8686,6 +8739,11 @@ systrace_return_setargdesc(int sysnum, int ndx, char * case 237: /* linux_tkill */ case 238: + if (ndx == 0 || ndx == 1) + p = "int"; + break; + /* linux_sendfile64 */ + case 239: if (ndx == 0 || ndx == 1) p = "int"; break;