svn commit: r320558 - head/sys/compat/freebsd32

Konstantin Belousov kib at FreeBSD.org
Sat Jul 1 22:52:19 UTC 2017


Author: kib
Date: Sat Jul  1 22:52:17 2017
New Revision: 320558
URL: https://svnweb.freebsd.org/changeset/base/320558

Log:
  Port PowerPC kqueue(2) compat32 fix in r320500 to MIPS.
  
  All 32bit MIPS ABIs align uint64_t on 8-byte.  Since struct kevent32
  is defined using 32bit types to avoid extra alignment on amd64/i386,
  layout of the structure needs paddings on PowerPC and apparently MIPS.
  
  Reviewed by:	jhb
  Sponsored by:	The FreeBSD Foundation
  Differential revision:	https://reviews.freebsd.org/D11434

Modified:
  head/sys/compat/freebsd32/freebsd32.h
  head/sys/compat/freebsd32/freebsd32_misc.c

Modified: head/sys/compat/freebsd32/freebsd32.h
==============================================================================
--- head/sys/compat/freebsd32/freebsd32.h	Sat Jul  1 22:21:11 2017	(r320557)
+++ head/sys/compat/freebsd32/freebsd32.h	Sat Jul  1 22:52:17 2017	(r320558)
@@ -141,12 +141,12 @@ struct kevent32 {
 	short		filter;		/* filter for event */
 	u_short		flags;
 	u_int		fflags;
-#ifdef __powerpc__
+#ifndef __amd64__
 	uint32_t	pad0;
 #endif
 	int32_t		data1, data2;
 	uint32_t	udata;		/* opaque user data identifier */
-#ifdef __powerpc__
+#ifndef __amd64__
 	uint32_t	pad1;
 #endif
 	uint32_t	ext64[8];

Modified: head/sys/compat/freebsd32/freebsd32_misc.c
==============================================================================
--- head/sys/compat/freebsd32/freebsd32_misc.c	Sat Jul  1 22:21:11 2017	(r320557)
+++ head/sys/compat/freebsd32/freebsd32_misc.c	Sat Jul  1 22:52:17 2017	(r320558)
@@ -119,10 +119,10 @@ CTASSERT(sizeof(struct statfs32) == 256);
 CTASSERT(sizeof(struct rusage32) == 72);
 #endif
 CTASSERT(sizeof(struct sigaltstack32) == 12);
-#ifdef __powerpc__
-CTASSERT(sizeof(struct kevent32) == 64);
-#else
+#ifdef __amd64__
 CTASSERT(sizeof(struct kevent32) == 56);
+#else
+CTASSERT(sizeof(struct kevent32) == 64);
 #endif
 CTASSERT(sizeof(struct iovec32) == 8);
 CTASSERT(sizeof(struct msghdr32) == 28);


More information about the svn-src-all mailing list