This commit is contained in:
Konstantin Belousov 2021-12-19 04:52:20 +02:00
parent ed21083462
commit bafbbd46ca
9 changed files with 62 additions and 16 deletions

View file

@ -508,4 +508,4 @@
#define FREEBSD32_SYS___specialfd 577
#define FREEBSD32_SYS_freebsd32_aio_writev 578
#define FREEBSD32_SYS_freebsd32_aio_readv 579
#define FREEBSD32_SYS_MAXSYSCALL 580
#define FREEBSD32_SYS_MAXSYSCALL 583

View file

@ -433,7 +433,7 @@ const char *freebsd32_syscallnames[] = {
"freebsd32_getcontext", /* 421 = freebsd32_getcontext */
"freebsd32_setcontext", /* 422 = freebsd32_setcontext */
"freebsd32_swapcontext", /* 423 = freebsd32_swapcontext */
"#424", /* 424 = swapoff */
"#424", /* 424 = freebsd13_swapoff */
"__acl_get_link", /* 425 = __acl_get_link */
"__acl_set_link", /* 426 = __acl_set_link */
"__acl_delete_link", /* 427 = __acl_delete_link */
@ -616,4 +616,7 @@ const char *freebsd32_syscallnames[] = {
"__specialfd", /* 577 = __specialfd */
"freebsd32_aio_writev", /* 578 = freebsd32_aio_writev */
"freebsd32_aio_readv", /* 579 = freebsd32_aio_readv */
"#580", /* 580 = fspacectl */
"#581", /* 581 = sched_getcpu */
"#582", /* 582 = swapoff */
};

View file

@ -486,7 +486,7 @@ struct sysent freebsd32_sysent[] = {
{ .sy_narg = AS(freebsd32_getcontext_args), .sy_call = (sy_call_t *)freebsd32_getcontext, .sy_auevent = AUE_NULL, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 421 = freebsd32_getcontext */
{ .sy_narg = AS(freebsd32_setcontext_args), .sy_call = (sy_call_t *)freebsd32_setcontext, .sy_auevent = AUE_NULL, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 422 = freebsd32_setcontext */
{ .sy_narg = AS(freebsd32_swapcontext_args), .sy_call = (sy_call_t *)freebsd32_swapcontext, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 423 = freebsd32_swapcontext */
{ .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT }, /* 424 = swapoff */
{ .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT }, /* 424 = freebsd13_swapoff */
{ .sy_narg = AS(__acl_get_link_args), .sy_call = (sy_call_t *)sys___acl_get_link, .sy_auevent = AUE_ACL_GET_LINK, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 425 = __acl_get_link */
{ .sy_narg = AS(__acl_set_link_args), .sy_call = (sy_call_t *)sys___acl_set_link, .sy_auevent = AUE_ACL_SET_LINK, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 426 = __acl_set_link */
{ .sy_narg = AS(__acl_delete_link_args), .sy_call = (sy_call_t *)sys___acl_delete_link, .sy_auevent = AUE_ACL_DELETE_LINK, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 427 = __acl_delete_link */
@ -669,4 +669,7 @@ struct sysent freebsd32_sysent[] = {
{ .sy_narg = AS(__specialfd_args), .sy_call = (sy_call_t *)sys___specialfd, .sy_auevent = AUE_SPECIALFD, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 577 = __specialfd */
{ .sy_narg = AS(freebsd32_aio_writev_args), .sy_call = (sy_call_t *)freebsd32_aio_writev, .sy_auevent = AUE_AIO_WRITEV, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 578 = freebsd32_aio_writev */
{ .sy_narg = AS(freebsd32_aio_readv_args), .sy_call = (sy_call_t *)freebsd32_aio_readv, .sy_auevent = AUE_AIO_READV, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 579 = freebsd32_aio_readv */
{ .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT }, /* 580 = fspacectl */
{ .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT }, /* 581 = sched_getcpu */
{ .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT }, /* 582 = swapoff */
};

View file

@ -479,7 +479,7 @@ struct sysent sysent[] = {
{ .sy_narg = AS(getcontext_args), .sy_call = (sy_call_t *)sys_getcontext, .sy_auevent = AUE_NULL, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 421 = getcontext */
{ .sy_narg = AS(setcontext_args), .sy_call = (sy_call_t *)sys_setcontext, .sy_auevent = AUE_NULL, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 422 = setcontext */
{ .sy_narg = AS(swapcontext_args), .sy_call = (sy_call_t *)sys_swapcontext, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 423 = swapcontext */
{ .sy_narg = AS(swapoff_args), .sy_call = (sy_call_t *)sys_swapoff, .sy_auevent = AUE_SWAPOFF, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 424 = swapoff */
{ .sy_narg = AS(freebsd13_swapoff_args), .sy_call = (sy_call_t *)freebsd13_swapoff, .sy_auevent = AUE_SWAPOFF, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 424 = freebsd13_swapoff */
{ .sy_narg = AS(__acl_get_link_args), .sy_call = (sy_call_t *)sys___acl_get_link, .sy_auevent = AUE_ACL_GET_LINK, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 425 = __acl_get_link */
{ .sy_narg = AS(__acl_set_link_args), .sy_call = (sy_call_t *)sys___acl_set_link, .sy_auevent = AUE_ACL_SET_LINK, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 426 = __acl_set_link */
{ .sy_narg = AS(__acl_delete_link_args), .sy_call = (sy_call_t *)sys___acl_delete_link, .sy_auevent = AUE_ACL_DELETE_LINK, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 427 = __acl_delete_link */
@ -635,4 +635,7 @@ struct sysent sysent[] = {
{ .sy_narg = AS(__specialfd_args), .sy_call = (sy_call_t *)sys___specialfd, .sy_auevent = AUE_SPECIALFD, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 577 = __specialfd */
{ .sy_narg = AS(aio_writev_args), .sy_call = (sy_call_t *)sys_aio_writev, .sy_auevent = AUE_AIO_WRITEV, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 578 = aio_writev */
{ .sy_narg = AS(aio_readv_args), .sy_call = (sy_call_t *)sys_aio_readv, .sy_auevent = AUE_AIO_READV, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 579 = aio_readv */
{ .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT }, /* 580 = fspacectl */
{ .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT }, /* 581 = sched_getcpu */
{ .sy_narg = AS(swapoff_args), .sy_call = (sy_call_t *)sys_swapoff, .sy_auevent = AUE_SWAPOFF, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 582 = swapoff */
};

View file

@ -430,7 +430,7 @@ const char *syscallnames[] = {
"getcontext", /* 421 = getcontext */
"setcontext", /* 422 = setcontext */
"swapcontext", /* 423 = swapcontext */
"swapoff", /* 424 = swapoff */
"freebsd13_swapoff", /* 424 = freebsd13_swapoff */
"__acl_get_link", /* 425 = __acl_get_link */
"__acl_set_link", /* 426 = __acl_set_link */
"__acl_delete_link", /* 427 = __acl_delete_link */
@ -586,4 +586,7 @@ const char *syscallnames[] = {
"__specialfd", /* 577 = __specialfd */
"aio_writev", /* 578 = aio_writev */
"aio_readv", /* 579 = aio_readv */
"#580", /* 580 = fspacectl */
"#581", /* 581 = sched_getcpu */
"swapoff", /* 582 = swapoff */
};

View file

@ -2128,9 +2128,9 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
*n_args = 2;
break;
}
/* swapoff */
/* freebsd13_swapoff */
case 424: {
struct swapoff_args *p = params;
struct freebsd13_swapoff_args *p = params;
uarg[0] = (intptr_t)p->name; /* const char * */
*n_args = 1;
break;
@ -3399,6 +3399,14 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
*n_args = 1;
break;
}
/* swapoff */
case 582: {
struct swapoff_args *p = params;
uarg[0] = (intptr_t)p->name; /* const char * */
uarg[1] = p->flags; /* u_int */
*n_args = 2;
break;
}
default:
*n_args = 0;
break;
@ -6827,7 +6835,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
break;
};
break;
/* swapoff */
/* freebsd13_swapoff */
case 424:
switch (ndx) {
case 0:
@ -9088,6 +9096,19 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
break;
};
break;
/* swapoff */
case 582:
switch (ndx) {
case 0:
p = "userland const char *";
break;
case 1:
p = "u_int";
break;
default:
break;
};
break;
default:
break;
};
@ -10332,7 +10353,7 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* swapoff */
/* freebsd13_swapoff */
case 424:
if (ndx == 0 || ndx == 1)
p = "int";
@ -11034,6 +11055,11 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* swapoff */
case 582:
if (ndx == 0 || ndx == 1)
p = "int";
break;
default:
break;
};

View file

@ -366,7 +366,7 @@
#define SYS_getcontext 421
#define SYS_setcontext 422
#define SYS_swapcontext 423
#define SYS_swapoff 424
#define SYS_freebsd13_swapoff 424
#define SYS___acl_get_link 425
#define SYS___acl_set_link 426
#define SYS___acl_delete_link 427
@ -517,4 +517,5 @@
#define SYS___specialfd 577
#define SYS_aio_writev 578
#define SYS_aio_readv 579
#define SYS_MAXSYSCALL 580
#define SYS_swapoff 582
#define SYS_MAXSYSCALL 583

View file

@ -276,7 +276,7 @@ MIASM = \
getcontext.o \
setcontext.o \
swapcontext.o \
swapoff.o \
freebsd13_swapoff.o \
__acl_get_link.o \
__acl_set_link.o \
__acl_delete_link.o \
@ -422,4 +422,5 @@ MIASM = \
rpctls_syscall.o \
__specialfd.o \
aio_writev.o \
aio_readv.o
aio_readv.o \
swapoff.o

View file

@ -1138,7 +1138,7 @@ struct swapcontext_args {
char oucp_l_[PADL_(struct __ucontext *)]; struct __ucontext * oucp; char oucp_r_[PADR_(struct __ucontext *)];
char ucp_l_[PADL_(const struct __ucontext *)]; const struct __ucontext * ucp; char ucp_r_[PADR_(const struct __ucontext *)];
};
struct swapoff_args {
struct freebsd13_swapoff_args {
char name_l_[PADL_(const char *)]; const char * name; char name_r_[PADR_(const char *)];
};
struct __acl_get_link_args {
@ -1847,6 +1847,10 @@ struct aio_writev_args {
struct aio_readv_args {
char aiocbp_l_[PADL_(struct aiocb *)]; struct aiocb * aiocbp; char aiocbp_r_[PADR_(struct aiocb *)];
};
struct swapoff_args {
char name_l_[PADL_(const char *)]; const char * name; char name_r_[PADR_(const char *)];
char flags_l_[PADL_(u_int)]; u_int flags; char flags_r_[PADR_(u_int)];
};
int nosys(struct thread *, struct nosys_args *);
void sys_sys_exit(struct thread *, struct sys_exit_args *);
int sys_fork(struct thread *, struct fork_args *);
@ -2100,7 +2104,7 @@ int sys_sigreturn(struct thread *, struct sigreturn_args *);
int sys_getcontext(struct thread *, struct getcontext_args *);
int sys_setcontext(struct thread *, struct setcontext_args *);
int sys_swapcontext(struct thread *, struct swapcontext_args *);
int sys_swapoff(struct thread *, struct swapoff_args *);
int freebsd13_swapoff(struct thread *, struct freebsd13_swapoff_args *);
int sys___acl_get_link(struct thread *, struct __acl_get_link_args *);
int sys___acl_set_link(struct thread *, struct __acl_set_link_args *);
int sys___acl_delete_link(struct thread *, struct __acl_delete_link_args *);
@ -2241,6 +2245,7 @@ int sys_rpctls_syscall(struct thread *, struct rpctls_syscall_args *);
int sys___specialfd(struct thread *, struct __specialfd_args *);
int sys_aio_writev(struct thread *, struct aio_writev_args *);
int sys_aio_readv(struct thread *, struct aio_readv_args *);
int sys_swapoff(struct thread *, struct swapoff_args *);
#ifdef COMPAT_43
@ -3038,7 +3043,7 @@ int freebsd12_closefrom(struct thread *, struct freebsd12_closefrom_args *);
#define SYS_AUE_getcontext AUE_NULL
#define SYS_AUE_setcontext AUE_NULL
#define SYS_AUE_swapcontext AUE_NULL
#define SYS_AUE_swapoff AUE_SWAPOFF
#define SYS_AUE_freebsd13_swapoff AUE_SWAPOFF
#define SYS_AUE___acl_get_link AUE_ACL_GET_LINK
#define SYS_AUE___acl_set_link AUE_ACL_SET_LINK
#define SYS_AUE___acl_delete_link AUE_ACL_DELETE_LINK
@ -3185,6 +3190,7 @@ int freebsd12_closefrom(struct thread *, struct freebsd12_closefrom_args *);
#define SYS_AUE___specialfd AUE_SPECIALFD
#define SYS_AUE_aio_writev AUE_AIO_WRITEV
#define SYS_AUE_aio_readv AUE_AIO_READV
#define SYS_AUE_swapoff AUE_SWAPOFF
#undef PAD_
#undef PADL_