Module Name: src
Committed By: thorpej
Date: Sun Jan 3 16:13:07 UTC 2021
Modified Files:
src/sys/compat/linux32/arch/amd64 [thorpej-futex]: linux32_syscall.h
linux32_syscallargs.h linux32_syscalls.c linux32_sysent.c
linux32_systrace_args.c
Log Message:
Regen for preadv(2) and pwritev(2).
To generate a diff of this commit:
cvs rdiff -u -r1.81.2.2 -r1.81.2.3 \
src/sys/compat/linux32/arch/amd64/linux32_syscall.h \
src/sys/compat/linux32/arch/amd64/linux32_syscallargs.h \
src/sys/compat/linux32/arch/amd64/linux32_syscalls.c \
src/sys/compat/linux32/arch/amd64/linux32_sysent.c
cvs rdiff -u -r1.8.2.2 -r1.8.2.3 \
src/sys/compat/linux32/arch/amd64/linux32_systrace_args.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/compat/linux32/arch/amd64/linux32_syscall.h
diff -u src/sys/compat/linux32/arch/amd64/linux32_syscall.h:1.81.2.2 src/sys/compat/linux32/arch/amd64/linux32_syscall.h:1.81.2.3
--- src/sys/compat/linux32/arch/amd64/linux32_syscall.h:1.81.2.2 Thu Dec 17 03:05:50 2020
+++ src/sys/compat/linux32/arch/amd64/linux32_syscall.h Sun Jan 3 16:13:07 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: linux32_syscall.h,v 1.81.2.2 2020/12/17 03:05:50 thorpej Exp $ */
+/* $NetBSD: linux32_syscall.h,v 1.81.2.3 2021/01/03 16:13:07 thorpej Exp $ */
/*
* System call numbers.
@@ -741,6 +741,12 @@
/* syscall: "pipe2" ret: "int" args: "netbsd32_intp" "int" */
#define LINUX32_SYS_pipe2 331
+/* syscall: "preadv" ret: "int" args: "int" "const netbsd32_iovecp_t" "int" "netbsd32_u_long" "netbsd32_u_long" */
+#define LINUX32_SYS_preadv 333
+
+/* syscall: "pwritev" ret: "int" args: "int" "const netbsd32_iovecp_t" "int" "netbsd32_u_long" "netbsd32_u_long" */
+#define LINUX32_SYS_pwritev 334
+
#define LINUX32_SYS_MAXSYSCALL 351
#define LINUX32_SYS_NSYSENT 512
#endif /* _LINUX32_SYS_SYSCALL_H_ */
Index: src/sys/compat/linux32/arch/amd64/linux32_syscallargs.h
diff -u src/sys/compat/linux32/arch/amd64/linux32_syscallargs.h:1.81.2.2 src/sys/compat/linux32/arch/amd64/linux32_syscallargs.h:1.81.2.3
--- src/sys/compat/linux32/arch/amd64/linux32_syscallargs.h:1.81.2.2 Thu Dec 17 03:05:50 2020
+++ src/sys/compat/linux32/arch/amd64/linux32_syscallargs.h Sun Jan 3 16:13:07 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: linux32_syscallargs.h,v 1.81.2.2 2020/12/17 03:05:50 thorpej Exp $ */
+/* $NetBSD: linux32_syscallargs.h,v 1.81.2.3 2021/01/03 16:13:07 thorpej Exp $ */
/*
* System call argument lists.
@@ -1077,6 +1077,24 @@ struct linux32_sys_pipe2_args {
};
check_syscall_args(linux32_sys_pipe2)
+struct linux32_sys_preadv_args {
+ syscallarg(int) fd;
+ syscallarg(const netbsd32_iovecp_t) iovp;
+ syscallarg(int) iovcnt;
+ syscallarg(netbsd32_u_long) off_lo;
+ syscallarg(netbsd32_u_long) off_hi;
+};
+check_syscall_args(linux32_sys_preadv)
+
+struct linux32_sys_pwritev_args {
+ syscallarg(int) fd;
+ syscallarg(const netbsd32_iovecp_t) iovp;
+ syscallarg(int) iovcnt;
+ syscallarg(netbsd32_u_long) off_lo;
+ syscallarg(netbsd32_u_long) off_hi;
+};
+check_syscall_args(linux32_sys_pwritev)
+
/*
* System call prototypes.
*/
@@ -1545,4 +1563,8 @@ int linux32_sys_dup3(struct lwp *, const
int linux32_sys_pipe2(struct lwp *, const struct linux32_sys_pipe2_args *, register_t *);
+int linux32_sys_preadv(struct lwp *, const struct linux32_sys_preadv_args *, register_t *);
+
+int linux32_sys_pwritev(struct lwp *, const struct linux32_sys_pwritev_args *, register_t *);
+
#endif /* _LINUX32_SYS_SYSCALLARGS_H_ */
Index: src/sys/compat/linux32/arch/amd64/linux32_syscalls.c
diff -u src/sys/compat/linux32/arch/amd64/linux32_syscalls.c:1.81.2.2 src/sys/compat/linux32/arch/amd64/linux32_syscalls.c:1.81.2.3
--- src/sys/compat/linux32/arch/amd64/linux32_syscalls.c:1.81.2.2 Thu Dec 17 03:05:50 2020
+++ src/sys/compat/linux32/arch/amd64/linux32_syscalls.c Sun Jan 3 16:13:07 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: linux32_syscalls.c,v 1.81.2.2 2020/12/17 03:05:50 thorpej Exp $ */
+/* $NetBSD: linux32_syscalls.c,v 1.81.2.3 2021/01/03 16:13:07 thorpej Exp $ */
/*
* System call names.
@@ -8,7 +8,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux32_syscalls.c,v 1.81.2.2 2020/12/17 03:05:50 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux32_syscalls.c,v 1.81.2.3 2021/01/03 16:13:07 thorpej Exp $");
#if defined(_KERNEL_OPT)
#include <sys/param.h>
@@ -372,8 +372,8 @@ const char *const linux32_syscallnames[]
/* 330 */ "dup3",
/* 331 */ "pipe2",
/* 332 */ "#332 (unimplemented inotify_init1)",
- /* 333 */ "#333 (unimplemented preadv)",
- /* 334 */ "#334 (unimplemented pwritev)",
+ /* 333 */ "preadv",
+ /* 334 */ "pwritev",
/* 335 */ "#335 (unimplemented rt_tgsigqueueinfo)",
/* 336 */ "#336 (unimplemented perf_counter_open)",
/* 337 */ "#337 (unimplemented recvmmsg)",
@@ -891,8 +891,8 @@ const char *const altlinux32_syscallname
/* 330 */ NULL, /* dup3 */
/* 331 */ NULL, /* pipe2 */
/* 332 */ NULL, /* unimplemented inotify_init1 */
- /* 333 */ NULL, /* unimplemented preadv */
- /* 334 */ NULL, /* unimplemented pwritev */
+ /* 333 */ NULL, /* preadv */
+ /* 334 */ NULL, /* pwritev */
/* 335 */ NULL, /* unimplemented rt_tgsigqueueinfo */
/* 336 */ NULL, /* unimplemented perf_counter_open */
/* 337 */ NULL, /* unimplemented recvmmsg */
Index: src/sys/compat/linux32/arch/amd64/linux32_sysent.c
diff -u src/sys/compat/linux32/arch/amd64/linux32_sysent.c:1.81.2.2 src/sys/compat/linux32/arch/amd64/linux32_sysent.c:1.81.2.3
--- src/sys/compat/linux32/arch/amd64/linux32_sysent.c:1.81.2.2 Thu Dec 17 03:05:50 2020
+++ src/sys/compat/linux32/arch/amd64/linux32_sysent.c Sun Jan 3 16:13:07 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: linux32_sysent.c,v 1.81.2.2 2020/12/17 03:05:50 thorpej Exp $ */
+/* $NetBSD: linux32_sysent.c,v 1.81.2.3 2021/01/03 16:13:07 thorpej Exp $ */
/*
* System call switch table.
@@ -8,7 +8,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux32_sysent.c,v 1.81.2.2 2020/12/17 03:05:50 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux32_sysent.c,v 1.81.2.3 2021/01/03 16:13:07 thorpej Exp $");
#include <sys/param.h>
#include <sys/poll.h>
@@ -1265,11 +1265,13 @@ struct sysent linux32_sysent[] = {
.sy_call = linux_sys_nosys,
}, /* 332 = filler */
{
- .sy_call = linux_sys_nosys,
- }, /* 333 = filler */
- {
- .sy_call = linux_sys_nosys,
- }, /* 334 = filler */
+ ns(struct linux32_sys_preadv_args),
+ .sy_call = (sy_call_t *)linux32_sys_preadv
+ }, /* 333 = preadv */
+ {
+ ns(struct linux32_sys_pwritev_args),
+ .sy_call = (sy_call_t *)linux32_sys_pwritev
+ }, /* 334 = pwritev */
{
.sy_call = linux_sys_nosys,
}, /* 335 = filler */
Index: src/sys/compat/linux32/arch/amd64/linux32_systrace_args.c
diff -u src/sys/compat/linux32/arch/amd64/linux32_systrace_args.c:1.8.2.2 src/sys/compat/linux32/arch/amd64/linux32_systrace_args.c:1.8.2.3
--- src/sys/compat/linux32/arch/amd64/linux32_systrace_args.c:1.8.2.2 Thu Dec 17 03:05:50 2020
+++ src/sys/compat/linux32/arch/amd64/linux32_systrace_args.c Sun Jan 3 16:13:07 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: linux32_systrace_args.c,v 1.8.2.2 2020/12/17 03:05:50 thorpej Exp $ */
+/* $NetBSD: linux32_systrace_args.c,v 1.8.2.3 2021/01/03 16:13:07 thorpej Exp $ */
/*
* System call argument to DTrace register array converstion.
@@ -1956,6 +1956,28 @@ systrace_args(register_t sysnum, const v
*n_args = 2;
break;
}
+ /* linux32_sys_preadv */
+ case 333: {
+ const struct linux32_sys_preadv_args *p = params;
+ iarg[0] = SCARG(p, fd); /* int */
+ uarg[1] = (intptr_t) SCARG(p, iovp).i32; /* const netbsd32_iovecp_t */
+ iarg[2] = SCARG(p, iovcnt); /* int */
+ iarg[3] = SCARG(p, off_lo); /* netbsd32_u_long */
+ iarg[4] = SCARG(p, off_hi); /* netbsd32_u_long */
+ *n_args = 5;
+ break;
+ }
+ /* linux32_sys_pwritev */
+ case 334: {
+ const struct linux32_sys_pwritev_args *p = params;
+ iarg[0] = SCARG(p, fd); /* int */
+ uarg[1] = (intptr_t) SCARG(p, iovp).i32; /* const netbsd32_iovecp_t */
+ iarg[2] = SCARG(p, iovcnt); /* int */
+ iarg[3] = SCARG(p, off_lo); /* netbsd32_u_long */
+ iarg[4] = SCARG(p, off_hi); /* netbsd32_u_long */
+ *n_args = 5;
+ break;
+ }
default:
*n_args = 0;
break;
@@ -5144,6 +5166,50 @@ systrace_entry_setargdesc(int sysnum, in
break;
};
break;
+ /* linux32_sys_preadv */
+ case 333:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "const netbsd32_iovecp_t";
+ break;
+ case 2:
+ p = "int";
+ break;
+ case 3:
+ p = "netbsd32_u_long";
+ break;
+ case 4:
+ p = "netbsd32_u_long";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* linux32_sys_pwritev */
+ case 334:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "const netbsd32_iovecp_t";
+ break;
+ case 2:
+ p = "int";
+ break;
+ case 3:
+ p = "netbsd32_u_long";
+ break;
+ case 4:
+ p = "netbsd32_u_long";
+ break;
+ default:
+ break;
+ };
+ break;
default:
break;
};
@@ -6289,6 +6355,16 @@ systrace_return_setargdesc(int sysnum, i
if (ndx == 0 || ndx == 1)
p = "int";
break;
+ /* linux32_sys_preadv */
+ case 333:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linux32_sys_pwritev */
+ case 334:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
default:
break;
};