Make DxeIpl "assembly-free" to avoid the undesired LongMode.obj code in image even if we do not choose to switch to long mode.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2031 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qhuang8
2006-11-29 01:49:26 +00:00
parent 16fdd1e20e
commit f40793becf
7 changed files with 64 additions and 624 deletions

View File

@@ -26,8 +26,29 @@ Abstract:
#define _VIRTUAL_MEMORY_H_
#define SYS_CODE64_SEL 0x38
#pragma pack(1)
typedef union {
struct {
UINT32 LimitLow : 16;
UINT32 BaseLow : 16;
UINT32 BaseMid : 8;
UINT32 Type : 4;
UINT32 System : 1;
UINT32 Dpl : 2;
UINT32 Present : 1;
UINT32 LimitHigh : 4;
UINT32 Software : 1;
UINT32 Reserved : 1;
UINT32 DefaultSize : 1;
UINT32 Granularity : 1;
UINT32 BaseHigh : 8;
} Bits;
UINT64 Uint64;
} IA32_GDT;
//
// Page-Map Level-4 Offset (PML4) and
// Page-Directory-Pointer Offset (PDPE) entries 4K & 2MB
@@ -77,7 +98,7 @@ typedef union {
#pragma pack()
EFI_PHYSICAL_ADDRESS
UINTN
CreateIdentityMappingPageTables (
VOID
)