summaryrefslogtreecommitdiff
path: root/UefiCpuPkg/Include
diff options
context:
space:
mode:
authorrsun3 <rsun3@6f19259b-4bc3-4df7-8a09-765794883524>2010-10-28 02:01:43 +0000
committerrsun3 <rsun3@6f19259b-4bc3-4df7-8a09-765794883524>2010-10-28 02:01:43 +0000
commit23394428fdfe351ae9382576cdeee2834a2c637d (patch)
treecde5852a3a5b127b33dd5601d1afa5b3cb4b378b /UefiCpuPkg/Include
parentc52acd89e872e32eae7ae6265b86b1670cd9cac1 (diff)
downloadedk2-platforms-23394428fdfe351ae9382576cdeee2834a2c637d.tar.xz
Fix build break when doing 32-bit build with some certain C compiler option combinations.
Use the library functions for shift operations in BaseLib for a 64-bit integer where the code is shared for 32-bit and 64-bit. Defining bitfields in structures with > 32 bits will cause these types of issues on IA32 builds. So the largest bitfield should be type UINT32 with a max size of :32. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10983 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'UefiCpuPkg/Include')
-rw-r--r--UefiCpuPkg/Include/Register/LocalApic.h13
1 files changed, 7 insertions, 6 deletions
diff --git a/UefiCpuPkg/Include/Register/LocalApic.h b/UefiCpuPkg/Include/Register/LocalApic.h
index e22900d0cc..9f8f1bb8bb 100644
--- a/UefiCpuPkg/Include/Register/LocalApic.h
+++ b/UefiCpuPkg/Include/Register/LocalApic.h
@@ -62,12 +62,13 @@
typedef union {
struct {
- UINT64 Reserved0:8; ///< Reserved.
- UINT64 Bsp:1; ///< Processor is BSP.
- UINT64 Reserved1:1; ///< Reserved.
- UINT64 Extd:1; ///< Enable x2APIC mode.
- UINT64 En:1; ///< xAPIC global enable/disable.
- UINT64 ApicBase:52; ///< APIC Base physical address. The actual field width depends on physical address width.
+ UINT32 Reserved0:8; ///< Reserved.
+ UINT32 Bsp:1; ///< Processor is BSP.
+ UINT32 Reserved1:1; ///< Reserved.
+ UINT32 Extd:1; ///< Enable x2APIC mode.
+ UINT32 En:1; ///< xAPIC global enable/disable.
+ UINT32 ApicBaseLow:20; ///< APIC Base physical address. The actual field width depends on physical address width.
+ UINT32 ApicBaseHigh:32;
} Bits;
UINT64 Uint64;
} MSR_IA32_APIC_BASE;