svn commit: r251051 - in stable/9/sys: compat/freebsd32 kern

Konstantin Belousov kib at FreeBSD.org
Tue May 28 05:51:02 UTC 2013


Author: kib
Date: Tue May 28 05:51:00 2013
New Revision: 251051
URL: http://svnweb.freebsd.org/changeset/base/251051

Log:
  MFC r250853:
  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.

Modified:
  stable/9/sys/compat/freebsd32/freebsd32_misc.c
  stable/9/sys/compat/freebsd32/syscalls.master
  stable/9/sys/kern/syscalls.master
Directory Properties:
  stable/9/sys/   (props changed)

Modified: stable/9/sys/compat/freebsd32/freebsd32_misc.c
==============================================================================
--- stable/9/sys/compat/freebsd32/freebsd32_misc.c	Tue May 28 05:36:18 2013	(r251050)
+++ stable/9/sys/compat/freebsd32/freebsd32_misc.c	Tue May 28 05:51:00 2013	(r251051)
@@ -192,8 +192,8 @@ freebsd32_wait6(struct thread *td, struc
 		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)

Modified: stable/9/sys/compat/freebsd32/syscalls.master
==============================================================================
--- stable/9/sys/compat/freebsd32/syscalls.master	Tue May 28 05:36:18 2013	(r251050)
+++ stable/9/sys/compat/freebsd32/syscalls.master	Tue May 28 05:51:00 2013	(r251051)
@@ -990,6 +990,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); }
@@ -997,8 +1013,9 @@
 				    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

Modified: stable/9/sys/kern/syscalls.master
==============================================================================
--- stable/9/sys/kern/syscalls.master	Tue May 28 05:36:18 2013	(r251050)
+++ stable/9/sys/kern/syscalls.master	Tue May 28 05:51:00 2013	(r251051)
@@ -948,7 +948,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); }


More information about the svn-src-all mailing list