This commit is contained in:
Ka Ho Ng 2021-08-05 03:34:42 +08:00
parent 0dc332bff2
commit da9fe3529b
11 changed files with 104 additions and 3 deletions

View File

@ -751,6 +751,13 @@ struct freebsd32_aio_writev_args {
struct freebsd32_aio_readv_args {
char aiocbp_l_[PADL_(struct aiocb32 *)]; struct aiocb32 * aiocbp; char aiocbp_r_[PADR_(struct aiocb32 *)];
};
struct freebsd32_fspacectl_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
char cmd_l_[PADL_(int)]; int cmd; char cmd_r_[PADR_(int)];
char rqsr_l_[PADL_(const struct spacectl_range32 *)]; const struct spacectl_range32 * rqsr; char rqsr_r_[PADR_(const struct spacectl_range32 *)];
char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)];
char rmsr_l_[PADL_(struct spacectl_range32 *)]; struct spacectl_range32 * rmsr; char rmsr_r_[PADR_(struct spacectl_range32 *)];
};
#if !defined(PAD64_REQUIRED) && !defined(__amd64__)
#define PAD64_REQUIRED
#endif
@ -893,6 +900,7 @@ int freebsd32_cpuset_setdomain(struct thread *, struct freebsd32_cpuset_setdomai
int freebsd32___sysctlbyname(struct thread *, struct freebsd32___sysctlbyname_args *);
int freebsd32_aio_writev(struct thread *, struct freebsd32_aio_writev_args *);
int freebsd32_aio_readv(struct thread *, struct freebsd32_aio_readv_args *);
int freebsd32_fspacectl(struct thread *, struct freebsd32_fspacectl_args *);
#ifdef COMPAT_43
@ -1486,6 +1494,7 @@ int freebsd11_freebsd32_fstatat(struct thread *, struct freebsd11_freebsd32_fsta
#define FREEBSD32_SYS_AUE_freebsd32___sysctlbyname AUE_SYSCTL
#define FREEBSD32_SYS_AUE_freebsd32_aio_writev AUE_AIO_WRITEV
#define FREEBSD32_SYS_AUE_freebsd32_aio_readv AUE_AIO_READV
#define FREEBSD32_SYS_AUE_freebsd32_fspacectl AUE_FSPACECTL
#undef PAD_
#undef PADL_

View File

@ -508,4 +508,5 @@
#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_freebsd32_fspacectl 580
#define FREEBSD32_SYS_MAXSYSCALL 581

View File

@ -616,4 +616,5 @@ const char *freebsd32_syscallnames[] = {
"__specialfd", /* 577 = __specialfd */
"freebsd32_aio_writev", /* 578 = freebsd32_aio_writev */
"freebsd32_aio_readv", /* 579 = freebsd32_aio_readv */
"freebsd32_fspacectl", /* 580 = freebsd32_fspacectl */
};

View File

@ -669,4 +669,5 @@ 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 = AS(freebsd32_fspacectl_args), .sy_call = (sy_call_t *)freebsd32_fspacectl, .sy_auevent = AUE_FSPACECTL, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 580 = freebsd32_fspacectl */
};

View File

@ -3407,6 +3407,17 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
*n_args = 1;
break;
}
/* freebsd32_fspacectl */
case 580: {
struct freebsd32_fspacectl_args *p = params;
iarg[0] = p->fd; /* int */
iarg[1] = p->cmd; /* int */
uarg[2] = (intptr_t)p->rqsr; /* const struct spacectl_range32 * */
iarg[3] = p->flags; /* int */
uarg[4] = (intptr_t)p->rmsr; /* struct spacectl_range32 * */
*n_args = 5;
break;
}
default:
*n_args = 0;
break;
@ -9183,6 +9194,28 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
break;
};
break;
/* freebsd32_fspacectl */
case 580:
switch (ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
case 2:
p = "userland const struct spacectl_range32 *";
break;
case 3:
p = "int";
break;
case 4:
p = "userland struct spacectl_range32 *";
break;
default:
break;
};
break;
default:
break;
};
@ -11102,6 +11135,11 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* freebsd32_fspacectl */
case 580:
if (ndx == 0 || ndx == 1)
p = "int";
break;
default:
break;
};

View File

@ -635,4 +635,5 @@ 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 = AS(fspacectl_args), .sy_call = (sy_call_t *)sys_fspacectl, .sy_auevent = AUE_FSPACECTL, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 580 = fspacectl */
};

View File

@ -586,4 +586,5 @@ const char *syscallnames[] = {
"__specialfd", /* 577 = __specialfd */
"aio_writev", /* 578 = aio_writev */
"aio_readv", /* 579 = aio_readv */
"fspacectl", /* 580 = fspacectl */
};

View File

@ -3399,6 +3399,17 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
*n_args = 1;
break;
}
/* fspacectl */
case 580: {
struct fspacectl_args *p = params;
iarg[0] = p->fd; /* int */
iarg[1] = p->cmd; /* int */
uarg[2] = (intptr_t)p->rqsr; /* const struct spacectl_range * */
iarg[3] = p->flags; /* int */
uarg[4] = (intptr_t)p->rmsr; /* struct spacectl_range * */
*n_args = 5;
break;
}
default:
*n_args = 0;
break;
@ -9088,6 +9099,28 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
break;
};
break;
/* fspacectl */
case 580:
switch (ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
case 2:
p = "userland const struct spacectl_range *";
break;
case 3:
p = "int";
break;
case 4:
p = "userland struct spacectl_range *";
break;
default:
break;
};
break;
default:
break;
};
@ -11034,6 +11067,11 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* fspacectl */
case 580:
if (ndx == 0 || ndx == 1)
p = "int";
break;
default:
break;
};

View File

@ -517,4 +517,5 @@
#define SYS___specialfd 577
#define SYS_aio_writev 578
#define SYS_aio_readv 579
#define SYS_MAXSYSCALL 580
#define SYS_fspacectl 580
#define SYS_MAXSYSCALL 581

View File

@ -422,4 +422,5 @@ MIASM = \
rpctls_syscall.o \
__specialfd.o \
aio_writev.o \
aio_readv.o
aio_readv.o \
fspacectl.o

View File

@ -1847,6 +1847,13 @@ struct aio_writev_args {
struct aio_readv_args {
char aiocbp_l_[PADL_(struct aiocb *)]; struct aiocb * aiocbp; char aiocbp_r_[PADR_(struct aiocb *)];
};
struct fspacectl_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
char cmd_l_[PADL_(int)]; int cmd; char cmd_r_[PADR_(int)];
char rqsr_l_[PADL_(const struct spacectl_range *)]; const struct spacectl_range * rqsr; char rqsr_r_[PADR_(const struct spacectl_range *)];
char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)];
char rmsr_l_[PADL_(struct spacectl_range *)]; struct spacectl_range * rmsr; char rmsr_r_[PADR_(struct spacectl_range *)];
};
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 *);
@ -2241,6 +2248,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_fspacectl(struct thread *, struct fspacectl_args *);
#ifdef COMPAT_43
@ -3185,6 +3193,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_fspacectl AUE_FSPACECTL
#undef PAD_
#undef PADL_