svn commit: r258660 - head/sys/amd64/include

Konstantin Belousov kib at FreeBSD.org
Tue Nov 26 19:38:43 UTC 2013


Author: kib
Date: Tue Nov 26 19:38:42 2013
New Revision: 258660
URL: http://svnweb.freebsd.org/changeset/base/258660

Log:
  Hide struct pcb definition by #ifdef __amd64__ braces.  If cc -m32
  compilation results in inclusion of the header, a confict arises due
  to savefpu being union for i386, but used as struct in the pcb
  definition.  The 32bit code should not need amd64 variant of the
  struct pcb anyway.
  
  For struct region_descriptor, use __uint64_t instead of unsigned long,
  as the base type for bit-fields.  Unsigned long cannot have width 64
  for -m32.
  
  The changes allowed to use sys/sysctl.h for cc -m32.
  
  Sponsored by:	The FreeBSD Foundation
  MFC after:	1 week

Modified:
  head/sys/amd64/include/pcb.h
  head/sys/amd64/include/segments.h

Modified: head/sys/amd64/include/pcb.h
==============================================================================
--- head/sys/amd64/include/pcb.h	Tue Nov 26 19:14:18 2013	(r258659)
+++ head/sys/amd64/include/pcb.h	Tue Nov 26 19:38:42 2013	(r258660)
@@ -43,6 +43,7 @@
 #include <machine/fpu.h>
 #include <machine/segments.h>
 
+#ifdef __amd64__
 struct pcb {
 	register_t	pcb_r15;
 	register_t	pcb_r14;
@@ -105,6 +106,7 @@ struct pcb {
 
 	uint64_t	pcb_pad[3];
 };
+#endif
 
 #ifdef _KERNEL
 struct trapframe;

Modified: head/sys/amd64/include/segments.h
==============================================================================
--- head/sys/amd64/include/segments.h	Tue Nov 26 19:14:18 2013	(r258659)
+++ head/sys/amd64/include/segments.h	Tue Nov 26 19:38:42 2013	(r258660)
@@ -82,8 +82,8 @@ struct	soft_segment_descriptor {
  * region descriptors, used to load gdt/idt tables before segments yet exist.
  */
 struct region_descriptor {
-	unsigned long rd_limit:16;		/* segment extent */
-	unsigned long rd_base:64 __packed;	/* base address  */
+	uint64_t rd_limit:16;		/* segment extent */
+	uint64_t rd_base:64 __packed;	/* base address  */
 } __packed;
 
 #ifdef _KERNEL


More information about the svn-src-all mailing list