aboutsummaryrefslogtreecommitdiff
path: root/sys/amd64
diff options
context:
space:
mode:
authorEd Maste <emaste@FreeBSD.org>2020-02-05 16:54:16 +0000
committerEd Maste <emaste@FreeBSD.org>2020-02-05 16:54:16 +0000
commit690a8a6acd5b9073f3221a7971d346df2498306f (patch)
treebcaa40c7beee355684ee68df60d1f2b18f245f55 /sys/amd64
parentfc7510aef78781b0068da1a6ba190a636a54d6e7 (diff)
downloadsrc-690a8a6acd5b9073f3221a7971d346df2498306f.tar.gz
src-690a8a6acd5b9073f3221a7971d346df2498306f.zip
regen linuxulator sysent after r357577
Notes
Notes: svn path=/head/; revision=357578
Diffstat (limited to 'sys/amd64')
-rw-r--r--sys/amd64/linux32/linux32_proto.h13
-rw-r--r--sys/amd64/linux32/linux32_syscall.h1
-rw-r--r--sys/amd64/linux32/linux32_syscalls.c2
-rw-r--r--sys/amd64/linux32/linux32_sysent.c4
-rw-r--r--sys/amd64/linux32/linux32_systrace_args.c60
5 files changed, 75 insertions, 5 deletions
diff --git a/sys/amd64/linux32/linux32_proto.h b/sys/amd64/linux32/linux32_proto.h
index ed89d8dbc554..eec0898d03f6 100644
--- a/sys/amd64/linux32/linux32_proto.h
+++ b/sys/amd64/linux32/linux32_proto.h
@@ -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_removexattr_args *);
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 linux_io_uring_register_args
#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
diff --git a/sys/amd64/linux32/linux32_syscall.h b/sys/amd64/linux32/linux32_syscall.h
index 5a49ace25301..e285a94c90fa 100644
--- a/sys/amd64/linux32/linux32_syscall.h
+++ b/sys/amd64/linux32/linux32_syscall.h
@@ -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
diff --git a/sys/amd64/linux32/linux32_syscalls.c b/sys/amd64/linux32/linux32_syscalls.c
index 588e08c0a606..e6c08f1bda6f 100644
--- a/sys/amd64/linux32/linux32_syscalls.c
+++ b/sys/amd64/linux32/linux32_syscalls.c
@@ -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 */
diff --git a/sys/amd64/linux32/linux32_sysent.c b/sys/amd64/linux32/linux32_sysent.c
index b935790758aa..3cb51b959812 100644
--- a/sys/amd64/linux32/linux32_sysent.c
+++ b/sys/amd64/linux32/linux32_sysent.c
@@ -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 */
diff --git a/sys/amd64/linux32/linux32_systrace_args.c b/sys/amd64/linux32/linux32_systrace_args.c
index d7b7fdc29ad3..85bab10bd459 100644
--- a/sys/amd64/linux32/linux32_systrace_args.c
+++ b/sys/amd64/linux32/linux32_systrace_args.c
@@ -1294,7 +1294,12 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
}
/* 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, int *n_args)
*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 *desc, size_t descsz)
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 *desc, size_t descsz)
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 *desc, size_t descsz)
break;
/* linux_sendfile */
case 187:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
/* linux_vfork */
case 190:
/* linux_getrlimit */
@@ -8478,6 +8531,11 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
if (ndx == 0 || ndx == 1)
p = "int";
break;
+ /* linux_sendfile64 */
+ case 239:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
/* linux_sys_futex */
case 240:
if (ndx == 0 || ndx == 1)