Fix the wait6(2) on 32bit architectures and for the compat32, by using
the right type for the argument in syscalls.master. Also fix the posix_fallocate(2) and posix_fadvise(2) compat32 syscalls on the architectures which require padding of the 64bit argument. Noted and reviewed by: jhb Pointy hat to: kib MFC after: 1 week
This commit is contained in:
parent
74c7ff1a0e
commit
48947eccee
@ -198,8 +198,8 @@ freebsd32_wait6(struct thread *td, struct freebsd32_wait6_args *uap)
|
||||
bzero(sip, sizeof(*sip));
|
||||
} else
|
||||
sip = NULL;
|
||||
error = kern_wait6(td, uap->idtype, uap->id, &status, uap->options,
|
||||
wrup, sip);
|
||||
error = kern_wait6(td, uap->idtype, PAIR32TO64(id_t, uap->id),
|
||||
&status, uap->options, wrup, sip);
|
||||
if (error != 0)
|
||||
return (error);
|
||||
if (uap->status != NULL)
|
||||
|
@ -994,6 +994,22 @@
|
||||
529 AUE_NULL NOPROTO { int rctl_remove_rule(const void *inbufp, \
|
||||
size_t inbuflen, void *outbufp, \
|
||||
size_t outbuflen); }
|
||||
#ifdef PAD64_REQUIRED
|
||||
530 AUE_NULL STD { int freebsd32_posix_fallocate(int fd, \
|
||||
int pad, \
|
||||
uint32_t offset1, uint32_t offset2,\
|
||||
uint32_t len1, uint32_t len2); }
|
||||
531 AUE_NULL STD { int freebsd32_posix_fadvise(int fd, \
|
||||
int pad, \
|
||||
uint32_t offset1, uint32_t offset2,\
|
||||
uint32_t len1, uint32_t len2, \
|
||||
int advice); }
|
||||
532 AUE_WAIT6 STD { int freebsd32_wait6(int idtype, int pad, \
|
||||
uint32_t id1, uint32_t id2, \
|
||||
int *status, int options, \
|
||||
struct wrusage32 *wrusage, \
|
||||
siginfo_t *info); }
|
||||
#else
|
||||
530 AUE_NULL STD { int freebsd32_posix_fallocate(int fd,\
|
||||
uint32_t offset1, uint32_t offset2,\
|
||||
uint32_t len1, uint32_t len2); }
|
||||
@ -1001,11 +1017,12 @@
|
||||
uint32_t offset1, uint32_t offset2,\
|
||||
uint32_t len1, uint32_t len2, \
|
||||
int advice); }
|
||||
532 AUE_WAIT6 STD { int freebsd32_wait6(int idtype, int id, \
|
||||
532 AUE_WAIT6 STD { int freebsd32_wait6(int idtype, \
|
||||
uint32_t id1, uint32_t id2, \
|
||||
int *status, int options, \
|
||||
struct wrusage32 *wrusage, \
|
||||
siginfo_t *info); }
|
||||
|
||||
#endif
|
||||
533 AUE_CAP_RIGHTS_LIMIT NOPROTO { int cap_rights_limit(int fd, \
|
||||
uint64_t rights); }
|
||||
534 AUE_CAP_IOCTLS_LIMIT NOPROTO { int cap_ioctls_limit(int fd, \
|
||||
|
@ -952,7 +952,7 @@
|
||||
off_t offset, off_t len); }
|
||||
531 AUE_NULL STD { int posix_fadvise(int fd, off_t offset, \
|
||||
off_t len, int advice); }
|
||||
532 AUE_WAIT6 STD { int wait6(int idtype, int id, \
|
||||
532 AUE_WAIT6 STD { int wait6(int idtype, id_t id, \
|
||||
int *status, int options, \
|
||||
struct __wrusage *wrusage, \
|
||||
siginfo_t *info); }
|
||||
|
Loading…
Reference in New Issue
Block a user