1) Remove UEFI specific defines from IndustryStandard/PeImage.h

2) Add UEFI specific defines to Uefi/UefiBaseType.h
3) Update Base PE/COFF related libs to only use defines from IndustryStandard/PeImage.h


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7438 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
mdkinney 2009-02-05 19:30:05 +00:00
parent 1862ebcfff
commit 4ab0dff338
6 changed files with 65 additions and 92 deletions

View File

@ -39,14 +39,6 @@
#define IMAGE_FILE_MACHINE_IA64 0x0200 #define IMAGE_FILE_MACHINE_IA64 0x0200
#define IMAGE_FILE_MACHINE_EBC 0x0EBC #define IMAGE_FILE_MACHINE_EBC 0x0EBC
#define IMAGE_FILE_MACHINE_X64 0x8664 #define IMAGE_FILE_MACHINE_X64 0x8664
//
// Support old names for backward compatible
//
#define EFI_IMAGE_MACHINE_IA32 IMAGE_FILE_MACHINE_I386
#define EFI_IMAGE_MACHINE_IA64 IMAGE_FILE_MACHINE_IA64
#define EFI_IMAGE_MACHINE_IPF IMAGE_FILE_MACHINE_IA64
#define EFI_IMAGE_MACHINE_EBC IMAGE_FILE_MACHINE_EBC
#define EFI_IMAGE_MACHINE_X64 IMAGE_FILE_MACHINE_X64
// //
// EXE file formats // EXE file formats
@ -114,18 +106,6 @@ typedef struct {
#define EFI_IMAGE_FILE_DLL BIT13 ///< 0x2000 File is a DLL. #define EFI_IMAGE_FILE_DLL BIT13 ///< 0x2000 File is a DLL.
#define EFI_IMAGE_FILE_BYTES_REVERSED_HI BIT15 ///< 0x8000 Bytes of machine word are reversed. #define EFI_IMAGE_FILE_BYTES_REVERSED_HI BIT15 ///< 0x8000 Bytes of machine word are reversed.
//
// Other Machine Types
//
#define EFI_IMAGE_FILE_MACHINE_UNKNOWN 0 ///< Any machine type
#define EFI_IMAGE_FILE_MACHINE_I386 0x14c ///< Intel 386.
#define EFI_IMAGE_FILE_MACHINE_R3000 0x162 ///< MIPS* little-endian, 0540 big-endian
#define EFI_IMAGE_FILE_MACHINE_R4000 0x166 ///< MIPS* little-endian
#define EFI_IMAGE_FILE_MACHINE_POWERPC 0x1F0 ///< IBM* PowerPC Little-Endian
//
// * Other names and brands may be claimed as the property of others.
//
/// ///
/// Header Data Directories /// Header Data Directories
/// ///
@ -256,7 +236,6 @@ typedef struct {
/// ///
/// @attention /// @attention
/// EFI_IMAGE_NT_HEADERS32 is for use ONLY by tools. /// EFI_IMAGE_NT_HEADERS32 is for use ONLY by tools.
/// All proper EFI code MUST use EFI_IMAGE_NT_HEADERS ONLY!!!
/// ///
typedef struct { typedef struct {
UINT32 Signature; UINT32 Signature;
@ -269,7 +248,6 @@ typedef struct {
/// ///
/// @attention /// @attention
/// EFI_IMAGE_HEADERS64 is for use ONLY by tools. /// EFI_IMAGE_HEADERS64 is for use ONLY by tools.
/// All proper EFI code MUST use EFI_IMAGE_NT_HEADERS ONLY!!!
/// ///
typedef struct { typedef struct {
UINT32 Signature; UINT32 Signature;
@ -279,67 +257,6 @@ typedef struct {
#define EFI_IMAGE_SIZEOF_NT_OPTIONAL64_HEADER sizeof (EFI_IMAGE_NT_HEADERS64) #define EFI_IMAGE_SIZEOF_NT_OPTIONAL64_HEADER sizeof (EFI_IMAGE_NT_HEADERS64)
///
/// Processor specific definition of EFI_IMAGE_OPTIONAL_HEADER so the
/// type name EFI_IMAGE_OPTIONAL_HEADER is appropriate to the build. Same for
/// EFI_IMAGE_NT_HEADERS. These definitions MUST be used by ALL EFI code.
///
#if defined (MDE_CPU_IA32)
#define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) \
(((Machine) == EFI_IMAGE_MACHINE_IA32) || ((Machine) == EFI_IMAGE_MACHINE_EBC))
#define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) ((Machine) == EFI_IMAGE_MACHINE_X64)
typedef EFI_IMAGE_NT_HEADERS32 EFI_IMAGE_NT_HEADERS;
#elif defined (MDE_CPU_IPF)
#define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) \
(((Machine) == EFI_IMAGE_MACHINE_IPF) || ((Machine) == EFI_IMAGE_MACHINE_EBC))
#define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) (FALSE)
typedef EFI_IMAGE_NT_HEADERS64 EFI_IMAGE_NT_HEADERS;
#elif defined (MDE_CPU_X64)
#define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) \
(((Machine) == EFI_IMAGE_MACHINE_X64) || ((Machine) == EFI_IMAGE_MACHINE_EBC))
#define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) ((Machine) == EFI_IMAGE_MACHINE_IA32)
typedef EFI_IMAGE_NT_HEADERS64 EFI_IMAGE_NT_HEADERS;
#elif defined (MDE_CPU_EBC)
///
/// This is just to make sure you can cross compile with the EBC compiiler.
/// It does not make sense to have a PE loader coded in EBC. You need to
/// understand the basic
///
#define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) ((Machine) == EFI_IMAGE_MACHINE_EBC)
#define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) (FALSE)
typedef EFI_IMAGE_NT_HEADERS64 EFI_IMAGE_NT_HEADERS;
#else
#error Unknown Processor Type
#endif
#define EFI_IMAGE_FIRST_SECTION(ntheader) \
( \
(EFI_IMAGE_SECTION_HEADER *) \
( \
(UINT32) ntheader + \
OFFSET_OF (EFI_IMAGE_NT_HEADERS, OptionalHeader) + \
((EFI_IMAGE_NT_HEADERS *) (ntheader))->FileHeader.SizeOfOptionalHeader \
) \
)
// //
// Other Windows Subsystem Values // Other Windows Subsystem Values
// //

View File

@ -188,5 +188,61 @@ typedef union {
/// ///
#define ISO_639_2_ENTRY_SIZE 3 #define ISO_639_2_ENTRY_SIZE 3
///
/// PE32+ Machine type for IA32 UEFI images
///
#define EFI_IMAGE_MACHINE_IA32 0x014C
///
/// PE32+ Machine type for IA64 UEFI images
///
#define EFI_IMAGE_MACHINE_IA64 0x0200
///
/// PE32+ Machine type for EBC UEFI images
///
#define EFI_IMAGE_MACHINE_EBC 0x0EBC
///
/// PE32+ Machine type for X64 UEFI images
///
#define EFI_IMAGE_MACHINE_X64 0x8664
#if defined (MDE_CPU_IA32)
#define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) \
(((Machine) == EFI_IMAGE_MACHINE_IA32) || ((Machine) == EFI_IMAGE_MACHINE_EBC))
#define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) ((Machine) == EFI_IMAGE_MACHINE_X64)
#elif defined (MDE_CPU_IPF)
#define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) \
(((Machine) == EFI_IMAGE_MACHINE_IA64) || ((Machine) == EFI_IMAGE_MACHINE_EBC))
#define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) (FALSE)
#elif defined (MDE_CPU_X64)
#define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) \
(((Machine) == EFI_IMAGE_MACHINE_X64) || ((Machine) == EFI_IMAGE_MACHINE_EBC))
#define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) ((Machine) == EFI_IMAGE_MACHINE_IA32)
#elif defined (MDE_CPU_EBC)
///
/// This is just to make sure you can cross compile with the EBC compiiler.
/// It does not make sense to have a PE loader coded in EBC. You need to
/// understand the basic
///
#define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) ((Machine) == EFI_IMAGE_MACHINE_EBC)
#define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) (FALSE)
#else
#error Unknown Processor Type
#endif
#endif #endif

View File

@ -195,16 +195,16 @@ PeCoffLoaderGetPdbPointer (
// generate PE32+ image with PE32 Magic. // generate PE32+ image with PE32 Magic.
// //
switch (Hdr.Pe32->FileHeader.Machine) { switch (Hdr.Pe32->FileHeader.Machine) {
case EFI_IMAGE_MACHINE_IA32: case IMAGE_FILE_MACHINE_I386:
// //
// Assume PE32 image with IA32 Machine field. // Assume PE32 image with IA32 Machine field.
// //
Magic = EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC; Magic = EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC;
break; break;
case EFI_IMAGE_MACHINE_X64: case IMAGE_FILE_MACHINE_X64:
case EFI_IMAGE_MACHINE_IPF: case IMAGE_FILE_MACHINE_IA64:
// //
// Assume PE32+ image with x64 or IPF Machine field // Assume PE32+ image with x64 or IA64 Machine field
// //
Magic = EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC; Magic = EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC;
break; break;

View File

@ -35,7 +35,7 @@ PeCoffLoaderGetPeHeaderMagicValue (
// Magic value in the OptionalHeader is EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC // Magic value in the OptionalHeader is EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC
// then override the returned value to EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC // then override the returned value to EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC
// //
if (Hdr.Pe32->FileHeader.Machine == EFI_IMAGE_MACHINE_IA64 && Hdr.Pe32->OptionalHeader.Magic == EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC) { if (Hdr.Pe32->FileHeader.Machine == IMAGE_FILE_MACHINE_IA64 && Hdr.Pe32->OptionalHeader.Magic == EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC) {
return EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC; return EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC;
} }
// //

View File

@ -236,8 +236,8 @@ PeCoffLoaderImageFormatSupported (
IN UINT16 Machine IN UINT16 Machine
) )
{ {
if ((Machine == EFI_IMAGE_MACHINE_IPF) || (Machine == EFI_IMAGE_MACHINE_IA32) || if ((Machine == IMAGE_FILE_MACHINE_IA64) || (Machine == IMAGE_FILE_MACHINE_I386) ||
(Machine == EFI_IMAGE_MACHINE_EBC) || (Machine == EFI_IMAGE_MACHINE_X64)) { (Machine == IMAGE_FILE_MACHINE_EBC) || (Machine == IMAGE_FILE_MACHINE_X64)) {
return TRUE; return TRUE;
} }

View File

@ -54,8 +54,8 @@ PeCoffLoaderImageFormatSupported (
IN UINT16 Machine IN UINT16 Machine
) )
{ {
if ((Machine == EFI_IMAGE_MACHINE_IA32) || (Machine == EFI_IMAGE_MACHINE_X64) || if ((Machine == IMAGE_FILE_MACHINE_I386) || (Machine == IMAGE_FILE_MACHINE_X64) ||
(Machine == EFI_IMAGE_MACHINE_EBC)) { (Machine == IMAGE_FILE_MACHINE_EBC)) {
return TRUE; return TRUE;
} }