freebsd32: add missing pads to preadv and pwritev
Reviewed by: kevans
This commit is contained in:
parent
f089a2f3d1
commit
d257e57d18
@ -247,6 +247,24 @@ struct freebsd32_lutimes_args {
|
||||
char path_l_[PADL_(const char *)]; const char * path; char path_r_[PADR_(const char *)];
|
||||
char tptr_l_[PADL_(const struct timeval32 *)]; const struct timeval32 * tptr; char tptr_r_[PADR_(const struct timeval32 *)];
|
||||
};
|
||||
#ifdef PAD64_REQUIRED
|
||||
struct freebsd32_preadv_args {
|
||||
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
|
||||
char iovp_l_[PADL_(struct iovec32 *)]; struct iovec32 * iovp; char iovp_r_[PADR_(struct iovec32 *)];
|
||||
char iovcnt_l_[PADL_(u_int)]; u_int iovcnt; char iovcnt_r_[PADR_(u_int)];
|
||||
char _pad_l_[PADL_(int)]; int _pad; char _pad_r_[PADR_(int)];
|
||||
char offset1_l_[PADL_(uint32_t)]; uint32_t offset1; char offset1_r_[PADR_(uint32_t)];
|
||||
char offset2_l_[PADL_(uint32_t)]; uint32_t offset2; char offset2_r_[PADR_(uint32_t)];
|
||||
};
|
||||
struct freebsd32_pwritev_args {
|
||||
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
|
||||
char iovp_l_[PADL_(struct iovec32 *)]; struct iovec32 * iovp; char iovp_r_[PADR_(struct iovec32 *)];
|
||||
char iovcnt_l_[PADL_(u_int)]; u_int iovcnt; char iovcnt_r_[PADR_(u_int)];
|
||||
char _pad_l_[PADL_(int)]; int _pad; char _pad_r_[PADR_(int)];
|
||||
char offset1_l_[PADL_(uint32_t)]; uint32_t offset1; char offset1_r_[PADR_(uint32_t)];
|
||||
char offset2_l_[PADL_(uint32_t)]; uint32_t offset2; char offset2_r_[PADR_(uint32_t)];
|
||||
};
|
||||
#else
|
||||
struct freebsd32_preadv_args {
|
||||
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
|
||||
char iovp_l_[PADL_(struct iovec32 *)]; struct iovec32 * iovp; char iovp_r_[PADR_(struct iovec32 *)];
|
||||
@ -261,6 +279,7 @@ struct freebsd32_pwritev_args {
|
||||
char offset1_l_[PADL_(uint32_t)]; uint32_t offset1; char offset1_r_[PADR_(uint32_t)];
|
||||
char offset2_l_[PADL_(uint32_t)]; uint32_t offset2; char offset2_r_[PADR_(uint32_t)];
|
||||
};
|
||||
#endif
|
||||
struct freebsd32_modstat_args {
|
||||
char modid_l_[PADL_(int)]; int modid; char modid_r_[PADR_(int)];
|
||||
char stat_l_[PADL_(struct module_stat32 *)]; struct module_stat32 * stat; char stat_r_[PADR_(struct module_stat32 *)];
|
||||
@ -801,8 +820,13 @@ int freebsd32_aio_read(struct thread *, struct freebsd32_aio_read_args *);
|
||||
int freebsd32_aio_write(struct thread *, struct freebsd32_aio_write_args *);
|
||||
int freebsd32_lio_listio(struct thread *, struct freebsd32_lio_listio_args *);
|
||||
int freebsd32_lutimes(struct thread *, struct freebsd32_lutimes_args *);
|
||||
#ifdef PAD64_REQUIRED
|
||||
int freebsd32_preadv(struct thread *, struct freebsd32_preadv_args *);
|
||||
int freebsd32_pwritev(struct thread *, struct freebsd32_pwritev_args *);
|
||||
#else
|
||||
int freebsd32_preadv(struct thread *, struct freebsd32_preadv_args *);
|
||||
int freebsd32_pwritev(struct thread *, struct freebsd32_pwritev_args *);
|
||||
#endif
|
||||
int freebsd32_modstat(struct thread *, struct freebsd32_modstat_args *);
|
||||
int freebsd32_kldstat(struct thread *, struct freebsd32_kldstat_args *);
|
||||
int freebsd32_aio_return(struct thread *, struct freebsd32_aio_return_args *);
|
||||
@ -979,6 +1003,9 @@ struct ofreebsd32_getdirentries_args {
|
||||
#ifdef PAD64_REQUIRED
|
||||
#else
|
||||
#endif
|
||||
#ifdef PAD64_REQUIRED
|
||||
#else
|
||||
#endif
|
||||
int ofreebsd32_lseek(struct thread *, struct ofreebsd32_lseek_args *);
|
||||
int ofreebsd32_stat(struct thread *, struct ofreebsd32_stat_args *);
|
||||
int ofreebsd32_lstat(struct thread *, struct ofreebsd32_lstat_args *);
|
||||
@ -1013,6 +1040,9 @@ struct freebsd4_freebsd32_fstatfs_args {
|
||||
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
|
||||
char buf_l_[PADL_(struct ostatfs32 *)]; struct ostatfs32 * buf; char buf_r_[PADR_(struct ostatfs32 *)];
|
||||
};
|
||||
#ifdef PAD64_REQUIRED
|
||||
#else
|
||||
#endif
|
||||
struct freebsd4_freebsd32_fhstatfs_args {
|
||||
char u_fhp_l_[PADL_(const struct fhandle *)]; const struct fhandle * u_fhp; char u_fhp_r_[PADR_(const struct fhandle *)];
|
||||
char buf_l_[PADL_(struct ostatfs32 *)]; struct ostatfs32 * buf; char buf_r_[PADR_(struct ostatfs32 *)];
|
||||
@ -1111,6 +1141,9 @@ struct freebsd6_freebsd32_ftruncate_args {
|
||||
char length1_l_[PADL_(uint32_t)]; uint32_t length1; char length1_r_[PADR_(uint32_t)];
|
||||
char length2_l_[PADL_(uint32_t)]; uint32_t length2; char length2_r_[PADR_(uint32_t)];
|
||||
};
|
||||
#ifdef PAD64_REQUIRED
|
||||
#else
|
||||
#endif
|
||||
struct freebsd6_freebsd32_aio_read_args {
|
||||
char aiocbp_l_[PADL_(struct oaiocb32 *)]; struct oaiocb32 * aiocbp; char aiocbp_r_[PADR_(struct oaiocb32 *)];
|
||||
};
|
||||
@ -1187,6 +1220,9 @@ struct freebsd7_freebsd32_shmctl_args {
|
||||
#ifdef PAD64_REQUIRED
|
||||
#else
|
||||
#endif
|
||||
#ifdef PAD64_REQUIRED
|
||||
#else
|
||||
#endif
|
||||
int freebsd7_freebsd32___semctl(struct thread *, struct freebsd7_freebsd32___semctl_args *);
|
||||
int freebsd7_freebsd32_msgctl(struct thread *, struct freebsd7_freebsd32_msgctl_args *);
|
||||
int freebsd7_freebsd32_shmctl(struct thread *, struct freebsd7_freebsd32_shmctl_args *);
|
||||
@ -1199,6 +1235,9 @@ int freebsd7_freebsd32_shmctl(struct thread *, struct freebsd7_freebsd32_shmctl_
|
||||
#if !defined(PAD64_REQUIRED) && !defined(__amd64__)
|
||||
#define PAD64_REQUIRED
|
||||
#endif
|
||||
#ifdef PAD64_REQUIRED
|
||||
#else
|
||||
#endif
|
||||
struct freebsd10_freebsd32_umtx_lock_args {
|
||||
char umtx_l_[PADL_(struct umtx *)]; struct umtx * umtx; char umtx_r_[PADR_(struct umtx *)];
|
||||
};
|
||||
@ -1249,6 +1288,9 @@ struct freebsd11_freebsd32_getdirentries_args {
|
||||
char count_l_[PADL_(u_int)]; u_int count; char count_r_[PADR_(u_int)];
|
||||
char basep_l_[PADL_(int32_t *)]; int32_t * basep; char basep_r_[PADR_(int32_t *)];
|
||||
};
|
||||
#ifdef PAD64_REQUIRED
|
||||
#else
|
||||
#endif
|
||||
struct freebsd11_freebsd32_fhstat_args {
|
||||
char u_fhp_l_[PADL_(const struct fhandle *)]; const struct fhandle * u_fhp; char u_fhp_r_[PADR_(const struct fhandle *)];
|
||||
char sb_l_[PADL_(struct freebsd11_stat32 *)]; struct freebsd11_stat32 * sb; char sb_r_[PADR_(struct freebsd11_stat32 *)];
|
||||
@ -1313,6 +1355,9 @@ int freebsd11_freebsd32_fstatat(struct thread *, struct freebsd11_freebsd32_fsta
|
||||
#ifdef PAD64_REQUIRED
|
||||
#else
|
||||
#endif
|
||||
#ifdef PAD64_REQUIRED
|
||||
#else
|
||||
#endif
|
||||
|
||||
#endif /* COMPAT_FREEBSD12 */
|
||||
|
||||
@ -1389,6 +1434,8 @@ int freebsd11_freebsd32_fstatat(struct thread *, struct freebsd11_freebsd32_fsta
|
||||
#define FREEBSD32_SYS_AUE_freebsd32_lutimes AUE_LUTIMES
|
||||
#define FREEBSD32_SYS_AUE_freebsd32_preadv AUE_PREADV
|
||||
#define FREEBSD32_SYS_AUE_freebsd32_pwritev AUE_PWRITEV
|
||||
#define FREEBSD32_SYS_AUE_freebsd32_preadv AUE_PREADV
|
||||
#define FREEBSD32_SYS_AUE_freebsd32_pwritev AUE_PWRITEV
|
||||
#define FREEBSD32_SYS_AUE_freebsd4_freebsd32_fhstatfs AUE_FHSTATFS
|
||||
#define FREEBSD32_SYS_AUE_freebsd11_freebsd32_fhstat AUE_FHSTAT
|
||||
#define FREEBSD32_SYS_AUE_freebsd32_modstat AUE_NULL
|
||||
|
@ -239,6 +239,8 @@
|
||||
#define FREEBSD32_SYS_freebsd11_nfstat 279
|
||||
#define FREEBSD32_SYS_freebsd11_nlstat 280
|
||||
#define FREEBSD32_SYS_freebsd32_preadv 289
|
||||
#define FREEBSD32_SYS_freebsd32_pwritev 290
|
||||
#define FREEBSD32_SYS_freebsd32_preadv 289
|
||||
#define FREEBSD32_SYS_freebsd32_pwritev 290
|
||||
/* 297 is freebsd4 freebsd32_fhstatfs */
|
||||
#define FREEBSD32_SYS_fhopen 298
|
||||
|
@ -298,8 +298,13 @@ const char *freebsd32_syscallnames[] = {
|
||||
"#286", /* 286 = nosys */
|
||||
"#287", /* 287 = nosys */
|
||||
"#288", /* 288 = nosys */
|
||||
#ifdef PAD64_REQUIRED
|
||||
"freebsd32_preadv", /* 289 = freebsd32_preadv */
|
||||
"freebsd32_pwritev", /* 290 = freebsd32_pwritev */
|
||||
#else
|
||||
"freebsd32_preadv", /* 289 = freebsd32_preadv */
|
||||
"freebsd32_pwritev", /* 290 = freebsd32_pwritev */
|
||||
#endif
|
||||
"#291", /* 291 = nosys */
|
||||
"#292", /* 292 = nosys */
|
||||
"#293", /* 293 = nosys */
|
||||
|
@ -351,8 +351,13 @@ struct sysent freebsd32_sysent[] = {
|
||||
{ .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT }, /* 286 = nosys */
|
||||
{ .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT }, /* 287 = nosys */
|
||||
{ .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT }, /* 288 = nosys */
|
||||
#ifdef PAD64_REQUIRED
|
||||
{ .sy_narg = AS(freebsd32_preadv_args), .sy_call = (sy_call_t *)freebsd32_preadv, .sy_auevent = AUE_PREADV, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 289 = freebsd32_preadv */
|
||||
{ .sy_narg = AS(freebsd32_pwritev_args), .sy_call = (sy_call_t *)freebsd32_pwritev, .sy_auevent = AUE_PWRITEV, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 290 = freebsd32_pwritev */
|
||||
#else
|
||||
{ .sy_narg = AS(freebsd32_preadv_args), .sy_call = (sy_call_t *)freebsd32_preadv, .sy_auevent = AUE_PREADV, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 289 = freebsd32_preadv */
|
||||
{ .sy_narg = AS(freebsd32_pwritev_args), .sy_call = (sy_call_t *)freebsd32_pwritev, .sy_auevent = AUE_PWRITEV, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 290 = freebsd32_pwritev */
|
||||
#endif
|
||||
{ .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT }, /* 291 = nosys */
|
||||
{ .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT }, /* 292 = nosys */
|
||||
{ .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT }, /* 293 = nosys */
|
||||
|
@ -1307,6 +1307,32 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
|
||||
*n_args = 2;
|
||||
break;
|
||||
}
|
||||
#ifdef PAD64_REQUIRED
|
||||
/* freebsd32_preadv */
|
||||
case 289: {
|
||||
struct freebsd32_preadv_args *p = params;
|
||||
iarg[0] = p->fd; /* int */
|
||||
uarg[1] = (intptr_t)p->iovp; /* struct iovec32 * */
|
||||
uarg[2] = p->iovcnt; /* u_int */
|
||||
iarg[3] = p->_pad; /* int */
|
||||
uarg[4] = p->offset1; /* uint32_t */
|
||||
uarg[5] = p->offset2; /* uint32_t */
|
||||
*n_args = 6;
|
||||
break;
|
||||
}
|
||||
/* freebsd32_pwritev */
|
||||
case 290: {
|
||||
struct freebsd32_pwritev_args *p = params;
|
||||
iarg[0] = p->fd; /* int */
|
||||
uarg[1] = (intptr_t)p->iovp; /* struct iovec32 * */
|
||||
uarg[2] = p->iovcnt; /* u_int */
|
||||
iarg[3] = p->_pad; /* int */
|
||||
uarg[4] = p->offset1; /* uint32_t */
|
||||
uarg[5] = p->offset2; /* uint32_t */
|
||||
*n_args = 6;
|
||||
break;
|
||||
}
|
||||
#else
|
||||
/* freebsd32_preadv */
|
||||
case 289: {
|
||||
struct freebsd32_preadv_args *p = params;
|
||||
@ -1329,6 +1355,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
|
||||
*n_args = 5;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
/* fhopen */
|
||||
case 298: {
|
||||
struct fhopen_args *p = params;
|
||||
@ -5498,6 +5525,58 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
|
||||
break;
|
||||
};
|
||||
break;
|
||||
#ifdef PAD64_REQUIRED
|
||||
/* freebsd32_preadv */
|
||||
case 289:
|
||||
switch (ndx) {
|
||||
case 0:
|
||||
p = "int";
|
||||
break;
|
||||
case 1:
|
||||
p = "userland struct iovec32 *";
|
||||
break;
|
||||
case 2:
|
||||
p = "u_int";
|
||||
break;
|
||||
case 3:
|
||||
p = "int";
|
||||
break;
|
||||
case 4:
|
||||
p = "uint32_t";
|
||||
break;
|
||||
case 5:
|
||||
p = "uint32_t";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
};
|
||||
break;
|
||||
/* freebsd32_pwritev */
|
||||
case 290:
|
||||
switch (ndx) {
|
||||
case 0:
|
||||
p = "int";
|
||||
break;
|
||||
case 1:
|
||||
p = "userland struct iovec32 *";
|
||||
break;
|
||||
case 2:
|
||||
p = "u_int";
|
||||
break;
|
||||
case 3:
|
||||
p = "int";
|
||||
break;
|
||||
case 4:
|
||||
p = "uint32_t";
|
||||
break;
|
||||
case 5:
|
||||
p = "uint32_t";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
};
|
||||
break;
|
||||
#else
|
||||
/* freebsd32_preadv */
|
||||
case 289:
|
||||
switch (ndx) {
|
||||
@ -5542,6 +5621,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
|
||||
break;
|
||||
};
|
||||
break;
|
||||
#endif
|
||||
/* fhopen */
|
||||
case 298:
|
||||
switch (ndx) {
|
||||
@ -10009,6 +10089,7 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
|
||||
if (ndx == 0 || ndx == 1)
|
||||
p = "int";
|
||||
break;
|
||||
#ifdef PAD64_REQUIRED
|
||||
/* freebsd32_preadv */
|
||||
case 289:
|
||||
if (ndx == 0 || ndx == 1)
|
||||
@ -10019,6 +10100,18 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
|
||||
if (ndx == 0 || ndx == 1)
|
||||
p = "ssize_t";
|
||||
break;
|
||||
#else
|
||||
/* freebsd32_preadv */
|
||||
case 289:
|
||||
if (ndx == 0 || ndx == 1)
|
||||
p = "ssize_t";
|
||||
break;
|
||||
/* freebsd32_pwritev */
|
||||
case 290:
|
||||
if (ndx == 0 || ndx == 1)
|
||||
p = "ssize_t";
|
||||
break;
|
||||
#endif
|
||||
/* fhopen */
|
||||
case 298:
|
||||
if (ndx == 0 || ndx == 1)
|
||||
|
@ -541,6 +541,18 @@
|
||||
286 AUE_NULL UNIMPL nosys
|
||||
287 AUE_NULL UNIMPL nosys
|
||||
288 AUE_NULL UNIMPL nosys
|
||||
#ifdef PAD64_REQUIRED
|
||||
289 AUE_PREADV STD { ssize_t freebsd32_preadv(int fd, \
|
||||
struct iovec32 *iovp, \
|
||||
u_int iovcnt, \
|
||||
int _pad, \
|
||||
uint32_t offset1, uint32_t offset2); }
|
||||
290 AUE_PWRITEV STD { ssize_t freebsd32_pwritev(int fd, \
|
||||
struct iovec32 *iovp, \
|
||||
u_int iovcnt, \
|
||||
int _pad, \
|
||||
uint32_t offset1, uint32_t offset2); }
|
||||
#else
|
||||
289 AUE_PREADV STD { ssize_t freebsd32_preadv(int fd, \
|
||||
struct iovec32 *iovp, \
|
||||
u_int iovcnt, \
|
||||
@ -549,6 +561,7 @@
|
||||
struct iovec32 *iovp, \
|
||||
u_int iovcnt, \
|
||||
uint32_t offset1, uint32_t offset2); }
|
||||
#endif
|
||||
291 AUE_NULL UNIMPL nosys
|
||||
292 AUE_NULL UNIMPL nosys
|
||||
293 AUE_NULL UNIMPL nosys
|
||||
|
Loading…
x
Reference in New Issue
Block a user