summaryrefslogtreecommitdiff
path: root/EDK/Foundation/Library/EdkIIGlueLib/Include/Common
diff options
context:
space:
mode:
Diffstat (limited to 'EDK/Foundation/Library/EdkIIGlueLib/Include/Common')
-rw-r--r--EDK/Foundation/Library/EdkIIGlueLib/Include/Common/EdkIIGlueBaseTypes.h90
-rw-r--r--EDK/Foundation/Library/EdkIIGlueLib/Include/Common/EdkIIGlueDefinitionChangesBase.h118
-rw-r--r--EDK/Foundation/Library/EdkIIGlueLib/Include/Common/EdkIIGlueDefinitionChangesDxe.h95
-rw-r--r--EDK/Foundation/Library/EdkIIGlueLib/Include/Common/EdkIIGlueDefinitionChangesPeim.h165
-rw-r--r--EDK/Foundation/Library/EdkIIGlueLib/Include/Common/EdkIIGlueDependencies.h698
5 files changed, 1166 insertions, 0 deletions
diff --git a/EDK/Foundation/Library/EdkIIGlueLib/Include/Common/EdkIIGlueBaseTypes.h b/EDK/Foundation/Library/EdkIIGlueLib/Include/Common/EdkIIGlueBaseTypes.h
new file mode 100644
index 0000000..81180e9
--- /dev/null
+++ b/EDK/Foundation/Library/EdkIIGlueLib/Include/Common/EdkIIGlueBaseTypes.h
@@ -0,0 +1,90 @@
+/*++
+
+Copyright (c) 2004 - 2006, Intel Corporation
+All rights reserved. This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+
+Module Name:
+
+ EdkIIGlueBaseTypes.h
+
+Abstract:
+
+ Defines additional data types for use by Base modules
+
+--*/
+
+#ifndef __EDKII_GLUE_BASE_TYPES_H__
+#define __EDKII_GLUE_BASE_TYPES_H__
+
+#include "..\EdkIIGlueConfig.h"
+
+#define BREAKPOINT EFI_BREAKPOINT
+#define DEADLOOP EFI_DEADLOOP
+
+#define MAX_BIT EFI_MAX_BIT
+#define MAX_ADDRESS EFI_MAX_ADDRESS
+
+#ifndef UINT8_MAX
+ #define UINT8_MAX 0xff
+#endif
+
+//
+// EFI Error Codes common to all execution phases
+//
+
+typedef INTN RETURN_STATUS;
+
+///
+/// Set the upper bit to indicate EFI Error.
+///
+#define ENCODE_ERROR(a) (MAX_BIT | (a))
+
+#define ENCODE_WARNING(a) (a)
+#define RETURN_ERROR(a) ((a) < 0)
+
+#define RETURN_SUCCESS 0
+#define RETURN_LOAD_ERROR ENCODE_ERROR (1)
+#define RETURN_INVALID_PARAMETER ENCODE_ERROR (2)
+#define RETURN_UNSUPPORTED ENCODE_ERROR (3)
+#define RETURN_BAD_BUFFER_SIZE ENCODE_ERROR (4)
+#define RETURN_BUFFER_TOO_SMALL ENCODE_ERROR (5)
+#define RETURN_NOT_READY ENCODE_ERROR (6)
+#define RETURN_DEVICE_ERROR ENCODE_ERROR (7)
+#define RETURN_WRITE_PROTECTED ENCODE_ERROR (8)
+#define RETURN_OUT_OF_RESOURCES ENCODE_ERROR (9)
+#define RETURN_VOLUME_CORRUPTED ENCODE_ERROR (10)
+#define RETURN_VOLUME_FULL ENCODE_ERROR (11)
+#define RETURN_NO_MEDIA ENCODE_ERROR (12)
+#define RETURN_MEDIA_CHANGED ENCODE_ERROR (13)
+#define RETURN_NOT_FOUND ENCODE_ERROR (14)
+#define RETURN_ACCESS_DENIED ENCODE_ERROR (15)
+#define RETURN_NO_RESPONSE ENCODE_ERROR (16)
+#define RETURN_NO_MAPPING ENCODE_ERROR (17)
+#define RETURN_TIMEOUT ENCODE_ERROR (18)
+#define RETURN_NOT_STARTED ENCODE_ERROR (19)
+#define RETURN_ALREADY_STARTED ENCODE_ERROR (20)
+#define RETURN_ABORTED ENCODE_ERROR (21)
+#define RETURN_ICMP_ERROR ENCODE_ERROR (22)
+#define RETURN_TFTP_ERROR ENCODE_ERROR (23)
+#define RETURN_PROTOCOL_ERROR ENCODE_ERROR (24)
+#define RETURN_INCOMPATIBLE_VERSION ENCODE_ERROR (25)
+#define RETURN_SECURITY_VIOLATION ENCODE_ERROR (26)
+#define RETURN_CRC_ERROR ENCODE_ERROR (27)
+#define RETURN_END_OF_MEDIA ENCODE_ERROR (28)
+#define RETURN_END_OF_FILE ENCODE_ERROR (31)
+
+#define RETURN_WARN_UNKNOWN_GLYPH ENCODE_WARNING (1)
+#define RETURN_WARN_DELETE_FAILURE ENCODE_WARNING (2)
+#define RETURN_WARN_WRITE_FAILURE ENCODE_WARNING (3)
+#define RETURN_WARN_BUFFER_TOO_SMALL ENCODE_WARNING (4)
+
+typedef UINT64 PHYSICAL_ADDRESS;
+
+#endif
diff --git a/EDK/Foundation/Library/EdkIIGlueLib/Include/Common/EdkIIGlueDefinitionChangesBase.h b/EDK/Foundation/Library/EdkIIGlueLib/Include/Common/EdkIIGlueDefinitionChangesBase.h
new file mode 100644
index 0000000..aafcdd2
--- /dev/null
+++ b/EDK/Foundation/Library/EdkIIGlueLib/Include/Common/EdkIIGlueDefinitionChangesBase.h
@@ -0,0 +1,118 @@
+/*++
+
+Copyright (c) 2004 - 2007, Intel Corporation
+All rights reserved. This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+
+Module Name:
+
+ EdkIIGlueDefinitionChangesBase.h
+
+Abstract:
+
+ Data structure definition changes from EDK to EDKII
+
+--*/
+
+#ifndef __EDKII_GLUE_DEFINITION_CHANGES_BASE_H__
+#define __EDKII_GLUE_DEFINITION_CHANGES_BASE_H__
+
+#if (EFI_SPECIFICATION_VERSION >= 0x0002000A)
+#include "TianoHii.h"
+#else
+#include "EfiInternalFormRepresentation.h"
+#endif
+#include "EfiPxe.h"
+
+
+// ----------------------------------------------------------------------------------
+// Data Hub Record GUID Name changes
+// ----------------------------------------------------------------------------------
+#define gEfiProcessorSubClassGuid gProcessorSubClassName
+#define gEfiCacheSubClassGuid gCacheSubClassName
+#define gEfiMiscSubClassGuid gMiscSubClassName
+#define gEfiProcessorProducerGuid gProcessorProducerGuid
+#define gEfiMemoryProducerGuid gMemoryProducerGuid
+#define gEfiMiscProducerGuid gMiscProducerGuid
+
+
+// ----------------------------------------------------------------------------------
+// Hob.h: Get the data and data size field of GUID
+// ----------------------------------------------------------------------------------
+#define GET_GUID_HOB_DATA(GuidHob) ((VOID *) (((UINT8 *) &((GuidHob)->Name)) + sizeof (EFI_GUID)))
+#define GET_GUID_HOB_DATA_SIZE(GuidHob) (((GuidHob)->Header).HobLength - sizeof (EFI_HOB_GUID_TYPE))
+
+// ----------------------------------------------------------------------------------
+// InternalFormRepresentation.h:
+// ----------------------------------------------------------------------------------
+#if (EFI_SPECIFICATION_VERSION < 0x0002000A)
+typedef struct {
+ EFI_IFR_OP_HEADER Header;
+ UINT16 QuestionId; // The ID designating what the question is about...sucked in from a #define, likely in the form of a variable name
+ UINT8 Width; // The Size of the Data being saved
+ STRING_REF Prompt; // The String Token for the Prompt
+ STRING_REF Help; // The string Token for the context-help
+ UINT8 Flags; // For now, if non-zero, means that it is the default option, - further definition likely
+ UINT16 Key; // Value to be passed to caller to identify this particular op-code
+} EFI_IFR_CHECKBOX;
+
+typedef struct {
+ EFI_IFR_OP_HEADER Header;
+ UINT8 Flags;
+} EFI_IFR_GRAY_OUT;
+
+typedef struct {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_END_EXPR;
+#endif
+
+// ------------------------
+// define GUID as EFI_GUID
+// ------------------------
+typedef EFI_GUID GUID;
+
+
+// -------------------
+// EdkII Names - Edk Names
+// -------------------
+#define EFI_GLOBAL_VARIABLE EFI_GLOBAL_VARIABLE_GUID
+#define MPS_TABLE_GUID EFI_MPS_TABLE_GUID
+#define SAL_SYSTEM_TABLE_GUID EFI_SAL_SYSTEM_TABLE_GUID
+#define SMBIOS_TABLE_GUID EFI_SMBIOS_TABLE_GUID
+#define EFI_OPTIONAL_PTR EFI_OPTIONAL_POINTER
+#define PXE_FRAME_TYPE_FILTERED_MULTICAST PXE_FRAME_TYPE_MULTICAST
+#define IMAGE_FILE_MACHINE_I386 EFI_IMAGE_MACHINE_IA32
+#define IMAGE_FILE_MACHINE_IA64 EFI_IMAGE_MACHINE_IA64
+#define IMAGE_FILE_MACHINE_EBC EFI_IMAGE_MACHINE_EBC
+#define IMAGE_FILE_MACHINE_X64 EFI_IMAGE_MACHINE_X64
+#define EVENT_TIMER EFI_EVENT_TIMER
+#define EVENT_RUNTIME EFI_EVENT_RUNTIME
+#define EVENT_RUNTIME_CONTEXT EFI_EVENT_RUNTIME_CONTEXT
+#define EVENT_NOTIFY_WAIT EFI_EVENT_NOTIFY_WAIT
+#define EVENT_NOTIFY_SIGNAL EFI_EVENT_NOTIFY_SIGNAL
+#define EVENT_SIGNAL_EXIT_BOOT_SERVICES EFI_EVENT_SIGNAL_EXIT_BOOT_SERVICES
+#define EVENT_SIGNAL_VIRTUAL_ADDRESS_CHANGE EFI_EVENT_SIGNAL_VIRTUAL_ADDRESS_CHANGE
+#define TPL_APPLICATION EFI_TPL_APPLICATION
+#define TPL_CALLBACK EFI_TPL_CALLBACK
+#define TPL_NOTIFY EFI_TPL_NOTIFY
+#define TPL_HIGH_LEVEL EFI_TPL_HIGH_LEVEL
+
+//
+// Typos in R8.x
+//
+#define gEfiHobMemoryAllocModuleGuid gEfiHobMemeryAllocModuleGuid
+#define gEfiHobMemoryAllocStackGuid gEfiHobMemeryAllocStackGuid
+#define gEfiHobMemoryAllocBspStoreGuid gEfiHobMemeryAllocBspStoreGuid
+
+//
+// typedef Edk types - EdkII types
+//
+typedef PXE_CPB_START PXE_CPB_START_30;
+
+#endif
diff --git a/EDK/Foundation/Library/EdkIIGlueLib/Include/Common/EdkIIGlueDefinitionChangesDxe.h b/EDK/Foundation/Library/EdkIIGlueLib/Include/Common/EdkIIGlueDefinitionChangesDxe.h
new file mode 100644
index 0000000..dcedbe5
--- /dev/null
+++ b/EDK/Foundation/Library/EdkIIGlueLib/Include/Common/EdkIIGlueDefinitionChangesDxe.h
@@ -0,0 +1,95 @@
+/*++
+
+Copyright (c) 2004 - 2007, Intel Corporation
+All rights reserved. This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+
+Module Name:
+
+ EdkIIGlueDefinitionChangesDxe.h
+
+Abstract:
+
+ Data structure definition changes from EDK to EDKII
+
+--*/
+
+#ifndef __EDKII_GLUE_DEFINITION_CHANGES_DXE_H__
+#define __EDKII_GLUE_DEFINITION_CHANGES_DXE_H__
+
+#if (EFI_SPECIFICATION_VERSION >= 0x0002000A)
+#include "TianoHii.h"
+#else
+#include "EfiInternalFormRepresentation.h"
+#endif
+
+#include "EdkIIGlueDefinitionChangesBase.h"
+
+#if (TIANO_RELEASE_VERSION <= 0x00080005)
+ #define gEfiStatusCodeRuntimeProtocolGuid gEfiStatusCodeArchProtocolGuid
+#endif
+
+//
+// typedef Edk types - EdkII types
+//
+typedef EFI_MEMORY_ARRAY_START_ADDRESS EFI_MEMORY_ARRAY_START_ADDRESS_DATA;
+typedef EFI_MEMORY_DEVICE_START_ADDRESS EFI_MEMORY_DEVICE_START_ADDRESS_DATA;
+typedef EFI_MISC_LAST_PCI_BUS EFI_MISC_LAST_PCI_BUS_DATA;
+typedef EFI_MISC_BIOS_VENDOR EFI_MISC_BIOS_VENDOR_DATA;
+typedef EFI_MISC_SYSTEM_MANUFACTURER EFI_MISC_SYSTEM_MANUFACTURER_DATA;
+typedef EFI_MISC_BASE_BOARD_MANUFACTURER EFI_MISC_BASE_BOARD_MANUFACTURER_DATA;
+typedef EFI_MISC_CHASSIS_MANUFACTURER EFI_MISC_CHASSIS_MANUFACTURER_DATA;
+typedef EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA;
+typedef EFI_MISC_SYSTEM_SLOT_DESIGNATION EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA;
+typedef EFI_MISC_ONBOARD_DEVICE EFI_MISC_ONBOARD_DEVICE_DATA;
+typedef EFI_MISC_ONBOARD_DEVICE_TYPE_DATA EFI_MISC_PORTING_DEVICE_TYPE_DATA;
+typedef EFI_MISC_OEM_STRING EFI_MISC_OEM_STRING_DATA;
+typedef EFI_MISC_SYSTEM_OPTION_STRING EFI_MISC_SYSTEM_OPTION_STRING_DATA;
+typedef EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_DATA;
+typedef EFI_MISC_SYSTEM_LANGUAGE_STRING EFI_MISC_SYSTEM_LANGUAGE_STRING_DATA;
+typedef EFI_MISC_BIS_ENTRY_POINT EFI_MISC_BIS_ENTRY_POINT_DATA;
+typedef EFI_MISC_BOOT_INFORMATION_STATUS EFI_MISC_BOOT_INFORMATION_STATUS_DATA;
+typedef EFI_MISC_SYSTEM_POWER_SUPPLY EFI_MISC_SYSTEM_POWER_SUPPLY_DATA ;
+typedef EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA;
+
+// -------------------
+// EdkII Names - Edk Names
+// -------------------
+#define gEfiAcpiSupportProtocolGuid gEfiAcpiSupportGuid
+#define gEfiLoadPeImageProtocolGuid gEfiLoadPeImageGuid
+#if (EFI_SPECIFICATION_VERSION < 0x0002000A)
+#define EFI_GLYPH_NON_SPACING GLYPH_NON_SPACING
+#define EFI_GLYPH_WIDE GLYPH_NON_BREAKING
+#endif
+#define BOOT_OBJECT_AUTHORIZATION_PARMSET_GUID BOOT_OBJECT_AUTHORIZATION_PARMSET_GUIDVALUE
+#define EFI_EBC_PROTOCOL_GUID EFI_EBC_INTERPRETER_PROTOCOL_GUID
+#define EFI_FILE_SYSTEM_VOLUME_LABEL_ID EFI_FILE_SYSTEM_VOLUME_LABEL_INFO_ID_GUID
+#define EFI_LOADED_IMAGE_PROTOCOL_REVISION EFI_LOADED_IMAGE_INFORMATION_REVISION
+#define EFI_LOAD_FILE_PROTOCOL_GUID LOAD_FILE_PROTOCOL_GUID
+#define EFI_PXE_BASE_CODE_PROTOCOL_REVISION EFI_PXE_BASE_CODE_INTERFACE_REVISION
+#define EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL_REVISION EFI_PXE_BASE_CODE_CALLBACK_INTERFACE_REVISION
+#define EFI_SERIAL_IO_PROTOCOL_REVISION SERIAL_IO_INTERFACE_REVISION
+#define EFI_FILE_PROTOCOL_REVISION EFI_FILE_HANDLE_REVISION
+#define EFI_SIMPLE_TEXT_INPUT_PROTOCOL_GUID EFI_SIMPLE_TEXT_IN_PROTOCOL_GUID
+
+
+//
+// typedef Edk types - EdkII types
+//
+typedef EFI_VOLUME_OPEN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_OPEN_VOLUME;
+typedef EFI_TEXT_OUTPUT_STRING EFI_TEXT_STRING;
+#if (EFI_SPECIFICATION_VERSION < 0x0002000A)
+typedef SCREEN_DESCRIPTOR EFI_SCREEN_DESCRIPTOR;
+#endif
+typedef EFI_SIMPLE_TEXT_IN_PROTOCOL EFI_SIMPLE_TEXT_INPUT_PROTOCOL;
+typedef EFI_SIMPLE_TEXT_OUT_PROTOCOL EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL;
+//typedef EFI_TO_LEGACY16_INIT_TABLE EFI_TO_COMPATIBILITY16_INIT_TABLE;
+//typedef DISPATCH_OPROM_TABLE EFI_DISPATCH_OPROM_TABLE;
+
+#endif
diff --git a/EDK/Foundation/Library/EdkIIGlueLib/Include/Common/EdkIIGlueDefinitionChangesPeim.h b/EDK/Foundation/Library/EdkIIGlueLib/Include/Common/EdkIIGlueDefinitionChangesPeim.h
new file mode 100644
index 0000000..373c9b4
--- /dev/null
+++ b/EDK/Foundation/Library/EdkIIGlueLib/Include/Common/EdkIIGlueDefinitionChangesPeim.h
@@ -0,0 +1,165 @@
+/*++
+
+Copyright (c) 2004 - 2006, Intel Corporation
+All rights reserved. This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+
+Module Name:
+
+ EdkIIGlueDefinitionChangesPeim.h
+
+Abstract:
+
+ Data structure definition changes from EDK to EDKII
+
+--*/
+
+#ifndef __EDKII_GLUE_DEFINITION_CHANGES_PEIM_H__
+#define __EDKII_GLUE_DEFINITION_CHANGES_PEIM_H__
+
+#if (EFI_SPECIFICATION_VERSION >= 0x0002000A)
+#include "TianoHii.h"
+#else
+#include "EfiInternalFormRepresentation.h"
+#endif
+
+#include "EdkIIGlueDefinitionChangesBase.h"
+
+#include "EfiPciCfg.h"
+
+//
+// typedef Edk types - EdkII types
+//
+typedef EFI_MEMORY_ARRAY_START_ADDRESS EFI_MEMORY_ARRAY_START_ADDRESS_DATA;
+typedef EFI_MEMORY_DEVICE_START_ADDRESS EFI_MEMORY_DEVICE_START_ADDRESS_DATA;
+typedef EFI_MISC_LAST_PCI_BUS EFI_MISC_LAST_PCI_BUS_DATA;
+typedef EFI_MISC_BIOS_VENDOR EFI_MISC_BIOS_VENDOR_DATA;
+typedef EFI_MISC_SYSTEM_MANUFACTURER EFI_MISC_SYSTEM_MANUFACTURER_DATA;
+typedef EFI_MISC_BASE_BOARD_MANUFACTURER EFI_MISC_BASE_BOARD_MANUFACTURER_DATA;
+typedef EFI_MISC_CHASSIS_MANUFACTURER EFI_MISC_CHASSIS_MANUFACTURER_DATA;
+typedef EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA;
+typedef EFI_MISC_SYSTEM_SLOT_DESIGNATION EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA;
+typedef EFI_MISC_ONBOARD_DEVICE EFI_MISC_ONBOARD_DEVICE_DATA;
+typedef EFI_MISC_ONBOARD_DEVICE_TYPE_DATA EFI_MISC_PORTING_DEVICE_TYPE_DATA;
+typedef EFI_MISC_OEM_STRING EFI_MISC_OEM_STRING_DATA;
+typedef EFI_MISC_SYSTEM_OPTION_STRING EFI_MISC_SYSTEM_OPTION_STRING_DATA;
+typedef EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_DATA;
+typedef EFI_MISC_SYSTEM_LANGUAGE_STRING EFI_MISC_SYSTEM_LANGUAGE_STRING_DATA;
+typedef EFI_MISC_BIS_ENTRY_POINT EFI_MISC_BIS_ENTRY_POINT_DATA;
+typedef EFI_MISC_BOOT_INFORMATION_STATUS EFI_MISC_BOOT_INFORMATION_STATUS_DATA;
+typedef EFI_MISC_SYSTEM_POWER_SUPPLY EFI_MISC_SYSTEM_POWER_SUPPLY_DATA ;
+typedef EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA;
+
+// -------------------
+// EdkII Names - Edk Names
+// -------------------
+#define gEfiPeiCpuIoPpiInServiceTableGuid gPeiCpuIoPpiInServiceTableGuid
+#define gEfiEndOfPeiSignalPpiGuid gEndOfPeiSignalPpiGuid
+#define gEfiPeiFvFileLoaderPpiGuid gPeiFvFileLoaderPpiGuid
+#define gEfiPeiMasterBootModePpiGuid gPeiMasterBootModePpiGuid
+#define gEfiPeiMemoryDiscoveredPpiGuid gPeiMemoryDiscoveredPpiGuid
+#define gEfiPciCfgPpiInServiceTableGuid gPeiPciCfgPpiInServiceTableGuid
+#define gEfiPeiReadOnlyVariablePpiGuid gPeiReadOnlyVariablePpiGuid
+#define gEfiPeiRecoveryModulePpiGuid gPeiRecoveryModulePpiGuid
+#define gEfiPeiResetPpiGuid gPeiResetPpiGuid
+#define gEfiPeiS3ResumePpiGuid gPeiS3ResumePpiGuid
+#define gEfiPeiSectionExtractionPpiGuid gPeiSectionExtractionPpiGuid
+#define gEfiPeiSecurityPpiGuid gPeiSecurityPpiGuid
+#define gEfiPeiStatusCodePpiGuid gPeiStatusCodePpiGuid
+#define gEfiPeiBootScriptExecuterPpiGuid gPeiBootScriptExecuterPpiGuid
+#define gEfiPeiSmbusPpiGuid gPeiSmbusPpiGuid
+#define gEfiPeiBlockIoPpiGuid gPeiBlockIoPpiGuid
+#define gEfiPeiDeviceRecoveryModulePpiGuid gPeiDeviceRecoveryModulePpiGuid
+#define gEfiPeiStallPpiGuid gPeiStallPpiGuid
+#define gEfiPeiPciCfgPpiInServiceTableGuid gPeiPciCfgPpiInServiceTableGuid
+#define gEfiPeiAtaControllerPpiGuid gPeiAtaControllerPpiGuid
+#define EFI_PEI_CPU_IO_PPI_INSTALLED_GUID PEI_CPU_IO_PPI_GUID
+#define EFI_PEI_RESET_PPI_GUID PEI_RESET_PPI_GUID
+#define EFI_PEI_PCI_CFG_PPI_INSTALLED_GUID PEI_PCI_CFG_PPI_GUID
+#define EFI_PEI_REPORT_PROGRESS_CODE_PPI_GUID PEI_STATUS_CODE_PPI_GUID
+#define EFI_PEI_BOOT_IN_RECOVERY_MODE_PEIM_PPI PEI_BOOT_IN_RECOVERY_MODE_PEIM_PPI
+#define EFI_PEI_END_OF_PEI_PHASE_PPI_GUID PEI_END_OF_PEI_PHASE_PPI_GUID
+#define EFI_PEI_MASTER_BOOT_MODE_PEIM_PPI PEI_MASTER_BOOT_MODE_PEIM_PPI
+#define EFI_PEI_PERMANENT_MEMORY_INSTALLED_PPI_GUID PEI_PERMANENT_MEMORY_INSTALLED_PPI_GUID
+#define EFI_PEI_READ_ONLY_VARIABLE_ACCESS_PPI_GUID PEI_READ_ONLY_VARIABLE_ACCESS_PPI_GUID
+#define EFI_PEI_RECOVERY_MODULE_PPI_GUID PEI_RECOVERY_MODULE_INTERFACE_PPI
+#define EFI_PEI_S3_RESUME_PPI_GUID PEI_S3_RESUME_PPI_GUID
+#define EFI_PEI_SECURITY_PPI_GUID PEI_SECURITY_PPI_GUID
+#define EFI_PEI_STALL_PPI_GUID PEI_STALL_PPI_GUID
+#define EFI_PEI_SMBUS_PPI_GUID PEI_SMBUS_PPI_GUID
+#define EFI_PEI_BOOT_SCRIPT_EXECUTER_PPI_GUID PEI_BOOT_SCRIPT_EXECUTER_PPI_GUID
+#define EFI_PEI_FIND_FV_PPI_GUID EFI_FIND_FV_PPI_GUID
+#define EFI_PEI_VIRTUAL_BLOCK_IO_PPI PEI_BLOCK_IO_PPI_GUID
+#define EFI_PEI_DEVICE_RECOVERY_MODULE_PPI_GUID PEI_DEVICE_RECOVERY_MODULE_INTERFACE_PPI
+
+
+//
+// typedef Edk types - EdkII types
+//
+typedef PEI_RECOVERY_MODULE_INTERFACE EFI_PEI_RECOVERY_MODULE_PPI;
+typedef PEI_CPU_IO_PPI EFI_PEI_CPU_IO_PPI;
+typedef PEI_STALL_PPI EFI_PEI_STALL_PPI;
+typedef PEI_SMBUS_PPI EFI_PEI_SMBUS_PPI;
+typedef PEI_READ_ONLY_VARIABLE_PPI EFI_PEI_READ_ONLY_VARIABLE_PPI;
+typedef PEI_PCI_CFG_PPI EFI_PEI_PCI_CFG_PPI;
+typedef PEI_STATUS_CODE_PPI EFI_PEI_PROGRESS_CODE_PPI;
+typedef PEI_CPU_IO_PPI_WIDTH EFI_PEI_CPU_IO_PPI_WIDTH;
+typedef PEI_CPU_IO_PPI_IO_MEM EFI_PEI_CPU_IO_PPI_IO_MEM;
+typedef PEI_CPU_IO_PPI_ACCESS EFI_PEI_CPU_IO_PPI_ACCESS;
+typedef PEI_CPU_IO_PPI_IO_READ8 EFI_PEI_CPU_IO_PPI_IO_READ8;
+typedef PEI_CPU_IO_PPI_IO_READ16 EFI_PEI_CPU_IO_PPI_IO_READ16;
+typedef PEI_CPU_IO_PPI_IO_READ32 EFI_PEI_CPU_IO_PPI_IO_READ32;
+typedef PEI_CPU_IO_PPI_IO_READ64 EFI_PEI_CPU_IO_PPI_IO_READ64;
+typedef PEI_CPU_IO_PPI_IO_WRITE8 EFI_PEI_CPU_IO_PPI_IO_WRITE8;
+typedef PEI_CPU_IO_PPI_IO_WRITE16 EFI_PEI_CPU_IO_PPI_IO_WRITE16;
+typedef PEI_CPU_IO_PPI_IO_WRITE32 EFI_PEI_CPU_IO_PPI_IO_WRITE32;
+typedef PEI_CPU_IO_PPI_IO_WRITE64 EFI_PEI_CPU_IO_PPI_IO_WRITE64;
+typedef PEI_CPU_IO_PPI_MEM_READ8 EFI_PEI_CPU_IO_PPI_MEM_READ8;
+typedef PEI_CPU_IO_PPI_MEM_READ16 EFI_PEI_CPU_IO_PPI_MEM_READ16;
+typedef PEI_CPU_IO_PPI_MEM_READ32 EFI_PEI_CPU_IO_PPI_MEM_READ32;
+typedef PEI_CPU_IO_PPI_MEM_READ64 EFI_PEI_CPU_IO_PPI_MEM_READ64;
+typedef PEI_CPU_IO_PPI_MEM_WRITE8 EFI_PEI_CPU_IO_PPI_MEM_WRITE8;
+typedef PEI_CPU_IO_PPI_MEM_WRITE16 EFI_PEI_CPU_IO_PPI_MEM_WRITE16;
+typedef PEI_CPU_IO_PPI_MEM_WRITE32 EFI_PEI_CPU_IO_PPI_MEM_WRITE32;
+typedef PEI_CPU_IO_PPI_MEM_WRITE64 EFI_PEI_CPU_IO_PPI_MEM_WRITE64;
+//;;## ...AMI_OVERRIDE... Support PI1.x typedef PEI_PCI_CFG_PPI_WIDTH EFI_PEI_PCI_CFG_PPI_WIDTH;
+//;;## ...AMI_OVERRIDE... Support PI1.x typedef PEI_PCI_CFG_PPI_PCI_ADDRESS EFI_PEI_PCI_CFG_PPI_PCI_ADDRESS;
+typedef PEI_GET_VARIABLE EFI_PEI_GET_VARIABLE;
+typedef PEI_GET_NEXT_VARIABLE_NAME EFI_PEI_GET_NEXT_VARIABLE_NAME;
+typedef PEI_LOAD_RECOVERY_CAPSULE EFI_PEI_LOAD_RECOVERY_CAPSULE;
+typedef PEI_RESET_PPI EFI_PEI_RESET_PPI;
+typedef PEI_S3_RESUME_PPI EFI_PEI_S3_RESUME_PPI;
+typedef PEI_S3_RESUME_PPI_RESTORE_CONFIG EFI_PEI_S3_RESUME_PPI_RESTORE_CONFIG;
+typedef SEC_PLATFORM_INFORMATION EFI_SEC_PLATFORM_INFORMATION;
+typedef PEI_SECURITY_PPI EFI_PEI_SECURITY_PPI;
+typedef PEI_SECURITY_AUTHENTICATION_STATE EFI_PEI_SECURITY_AUTHENTICATION_STATE;
+typedef PEI_STALL EFI_PEI_STALL;
+typedef PEI_SMBUS_PPI_EXECUTE_OPERATION EFI_PEI_SMBUS_PPI_EXECUTE_OPERATION;
+typedef PEI_SMBUS_NOTIFY_FUNCTION EFI_PEI_SMBUS_NOTIFY_FUNCTION;
+typedef PEI_SMBUS_PPI_ARP_DEVICE EFI_PEI_SMBUS_PPI_ARP_DEVICE;
+typedef PEI_SMBUS_PPI_GET_ARP_MAP EFI_PEI_SMBUS_PPI_GET_ARP_MAP;
+typedef PEI_SMBUS_PPI_NOTIFY EFI_PEI_SMBUS_PPI_NOTIFY;
+typedef PEI_BOOT_SCRIPT_EXECUTE EFI_PEI_BOOT_SCRIPT_EXECUTE;
+typedef PEI_BOOT_SCRIPT_EXECUTER_PPI EFI_PEI_BOOT_SCRIPT_EXECUTER_PPI;
+typedef EFI_FIND_FV_FINDFV EFI_PEI_FIND_FV_FINDFV;
+typedef EFI_FIND_FV_PPI EFI_PEI_FIND_FV_PPI;
+typedef PEI_RECOVERY_BLOCK_IO_INTERFACE EFI_PEI_RECOVERY_BLOCK_IO_PPI;
+typedef PEI_LBA EFI_PEI_LBA;
+typedef PEI_BLOCK_IO_MEDIA EFI_PEI_BLOCK_IO_MEDIA;
+typedef PEI_BLOCK_DEVICE_TYPE EFI_PEI_BLOCK_DEVICE_TYPE;
+typedef PEI_GET_NUMBER_BLOCK_DEVICES EFI_PEI_GET_NUMBER_BLOCK_DEVICES;
+typedef PEI_GET_DEVICE_MEDIA_INFORMATION EFI_PEI_GET_DEVICE_MEDIA_INFORMATION;
+typedef PEI_READ_BLOCKS EFI_PEI_READ_BLOCKS;
+typedef PEI_DEVICE_RECOVERY_MODULE_INTERFACE EFI_PEI_DEVICE_RECOVERY_MODULE_PPI;
+typedef PEI_DEVICE_GET_NUMBER_RECOVERY_CAPSULE EFI_PEI_DEVICE_GET_NUMBER_RECOVERY_CAPSULE;
+typedef PEI_DEVICE_GET_RECOVERY_CAPSULE_INFO EFI_PEI_DEVICE_GET_RECOVERY_CAPSULE_INFO;
+typedef PEI_DEVICE_LOAD_RECOVERY_CAPSULE EFI_PEI_DEVICE_LOAD_RECOVERY_CAPSULE;
+
+
+#endif
diff --git a/EDK/Foundation/Library/EdkIIGlueLib/Include/Common/EdkIIGlueDependencies.h b/EDK/Foundation/Library/EdkIIGlueLib/Include/Common/EdkIIGlueDependencies.h
new file mode 100644
index 0000000..3d5aafe
--- /dev/null
+++ b/EDK/Foundation/Library/EdkIIGlueLib/Include/Common/EdkIIGlueDependencies.h
@@ -0,0 +1,698 @@
+/*++
+
+Copyright (c) 2004 - 2006, Intel Corporation
+All rights reserved. This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+
+Module Name:
+
+ EdkIIGlueDepedencies.h
+
+Abstract:
+
+ Header file that lists dependency relations among library instances
+
+--*/
+
+#ifndef __EDKII_GLUE_DEPENDENCIES_H__
+#define __EDKII_GLUE_DEPENDENCIES_H__
+
+
+//
+// Declarations of dependencies among EdkII Glue Library instances and R8 Libraries
+// Pay attention to the order of following #define structures
+//
+
+
+//
+// PeiDxeDebugLibReportStatusCode
+// Actually almost every module and GlueLib instance needs this library, but GlueLib
+// instances don't have to list this library in their own inf files. Module inf
+// does this.
+//
+#if defined(__EDKII_GLUE_PEI_DEBUG_LIB_REPORT_STATUS_CODE__) || defined(__EDKII_GLUE_DXE_DEBUG_LIB_REPORT_STATUS_CODE__)
+ #ifndef __EDKII_GLUE_BASE_LIB__
+ #define __EDKII_GLUE_BASE_LIB__
+ #endif
+ #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__
+ #define __EDKII_GLUE_BASE_MEMORY_LIB__
+ #endif
+#endif
+
+//
+// BaseDebugLibNull
+//
+#ifdef __EDKII_GLUE_BASE_DEBUG_LIB_NULL__
+ #ifndef __EDKII_GLUE_BASE_LIB__
+ #define __EDKII_GLUE_BASE_LIB__
+ #endif
+ #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__
+ #define __EDKII_GLUE_BASE_MEMORY_LIB__
+ #endif
+ #ifndef __EDKII_GLUE_BASE_PRINT_LIB__
+ #define __EDKII_GLUE_BASE_PRINT_LIB__
+ #endif
+#endif
+
+//
+// EdkDxeRuntimeDriverLib
+//
+#ifdef __EDKII_GLUE_EDK_DXE_RUNTIME_DRIVER_LIB__
+ #ifndef __EDKII_GLUE_UEFI_LIB__
+ #define __EDKII_GLUE_UEFI_LIB__
+ #endif
+ #ifndef __EDKII_GLUE_BASE_LIB__
+ #define __EDKII_GLUE_BASE_LIB__
+ #endif
+ #ifndef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__
+ #define __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__
+ #endif
+#endif
+
+
+//
+// BasePciLibCf8
+//
+#ifdef __EDKII_GLUE_BASE_PCI_LIB_CF8__
+ #ifndef __EDKII_GLUE_BASE_PCI_CF8_LIB__
+ #define __EDKII_GLUE_BASE_PCI_CF8_LIB__
+ #endif
+#endif
+
+//
+// BasePciLibPciExpress
+//
+#ifdef __EDKII_GLUE_BASE_PCI_LIB_PCI_EXPRESS__
+ #ifndef __EDKII_GLUE_BASE_PCI_EXPRESS_LIB__
+ #define __EDKII_GLUE_BASE_PCI_EXPRESS_LIB__
+ #endif
+#endif
+
+//
+// BasePciCf8Lib
+//
+#ifdef __EDKII_GLUE_BASE_PCI_CF8_LIB__
+ #ifndef __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__
+ #define __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__
+ #endif
+#endif
+
+// BasePciExpressLib
+//
+#ifdef __EDKII_GLUE_BASE_PCI_EXPRESS_LIB__
+ #ifndef __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__
+ #define __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__
+ #endif
+#endif
+
+//
+// BaseTimerLibLocalApic
+//
+#ifdef __EDKII_GLUE_BASE_TIMER_LIB_LOCAL_APIC__
+ #ifndef __EDKII_GLUE_BASE_LIB__
+ #define __EDKII_GLUE_BASE_LIB__
+ #endif
+ #ifndef __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__
+ #define __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__
+ #endif
+#endif
+
+//
+// DxeReportStatusCodeLib
+//
+#ifdef __EDKII_GLUE_DXE_REPORT_STATUS_CODE_LIB__
+ #ifndef __EDKII_GLUE_BASE_LIB__
+ #define __EDKII_GLUE_BASE_LIB__
+ #endif
+ #ifndef __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__
+ #define __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__
+ #endif
+ #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__
+ #define __EDKII_GLUE_BASE_MEMORY_LIB__
+ #endif
+ #ifndef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__
+ #define __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__
+ #endif
+ #ifndef __EDKII_GLUE_UEFI_RUNTIME_SERVICES_TABLE_LIB__
+ #define __EDKII_GLUE_UEFI_RUNTIME_SERVICES_TABLE_LIB__
+ #endif
+#endif
+
+//
+// SmmRuntimeDxeReportStatusCodeLib - typically used by SMM driver and Runtime driver
+//
+#ifdef __EDKII_GLUE_SMM_RUNTIME_DXE_REPORT_STATUS_CODE_LIB__
+ #ifndef __EDKII_GLUE_BASE_LIB__
+ #define __EDKII_GLUE_BASE_LIB__
+ #endif
+ #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__
+ #define __EDKII_GLUE_BASE_MEMORY_LIB__
+ #endif
+ #ifndef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__
+ #define __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__
+ #endif
+ #ifndef __EDKII_GLUE_UEFI_RUNTIME_SERVICES_TABLE_LIB__
+ #define __EDKII_GLUE_UEFI_RUNTIME_SERVICES_TABLE_LIB__
+ #endif
+#endif
+
+//
+// PeiReportStatusCodeLib
+//
+#ifdef __EDKII_GLUE_PEI_REPORT_STATUS_CODE_LIB__
+ #ifndef __EDKII_GLUE_BASE_LIB__
+ #define __EDKII_GLUE_BASE_LIB__
+ #endif
+ #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__
+ #define __EDKII_GLUE_BASE_MEMORY_LIB__
+ #endif
+ #ifndef __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__
+ #define __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__
+ #endif
+ #ifndef __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__
+ #define __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__
+ #endif
+ //
+ // If necessary, __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__ can be
+ // replaced with __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB__
+ //
+#endif
+
+//
+// BasePeCoffLib
+//
+#ifdef __EDKII_GLUE_BASE_PE_COFF_LIB__
+ #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__
+ #define __EDKII_GLUE_BASE_MEMORY_LIB__
+ #endif
+#endif
+
+//
+// BaseUefiDecompressLib
+//
+#ifdef __EDKII_GLUE_BASE_UEFI_DECOMPRESS_LIB__
+ #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__
+ #define __EDKII_GLUE_BASE_MEMORY_LIB__
+ #endif
+#endif
+
+//
+// DxeHobLib
+//
+#ifdef __EDKII_GLUE_DXE_HOB_LIB__
+ #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__
+ #define __EDKII_GLUE_BASE_MEMORY_LIB__
+ #endif
+ #ifndef __EDKII_GLUE_UEFI_LIB__
+ #define __EDKII_GLUE_UEFI_LIB__
+ #endif
+#endif
+
+//
+// HiiLib
+//
+#ifdef __EDKII_GLUE_HII_LIB__
+ #ifndef __EDKII_GLUE_DXE_MEMORY_ALLOCATION_LIB__
+ #define __EDKII_GLUE_DXE_MEMORY_ALLOCATION_LIB__
+ #endif
+#endif
+
+//
+// UefiDevicePathLib
+//
+#ifdef __EDKII_GLUE_UEFI_DEVICE_PATH_LIB__
+ #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__
+ #define __EDKII_GLUE_BASE_MEMORY_LIB__
+ #endif
+ #ifndef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__
+ #define __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__
+ #endif
+ #ifndef __EDKII_GLUE_DXE_MEMORY_ALLOCATION_LIB__
+ #define __EDKII_GLUE_DXE_MEMORY_ALLOCATION_LIB__
+ #endif
+#endif
+
+//
+// DxeServicesTableLib
+//
+#ifdef __EDKII_GLUE_DXE_SERVICES_TABLE_LIB__
+ #ifndef __EDKII_GLUE_UEFI_LIB__
+ #define __EDKII_GLUE_UEFI_LIB__
+ #endif
+#endif
+
+//
+// UefiLib
+//
+#ifdef __EDKII_GLUE_UEFI_LIB__
+ #ifndef __EDKII_GLUE_BASE_LIB__
+ #define __EDKII_GLUE_BASE_LIB__
+ #endif
+ #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__
+ #define __EDKII_GLUE_BASE_MEMORY_LIB__
+ #endif
+ #ifndef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__
+ #define __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__
+ #endif
+ #ifndef __EDKII_GLUE_DXE_MEMORY_ALLOCATION_LIB__
+ #define __EDKII_GLUE_DXE_MEMORY_ALLOCATION_LIB__
+ #endif
+#endif
+
+//
+// DxeMemoryAllocationLib
+//
+#ifdef __EDKII_GLUE_DXE_MEMORY_ALLOCATION_LIB__
+ #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__
+ #define __EDKII_GLUE_BASE_MEMORY_LIB__
+ #endif
+ #ifndef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__
+ #define __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__
+ #endif
+#endif
+
+//
+// DxeSmbusLib
+//
+#ifdef __EDKII_GLUE_DXE_SMBUS_LIB__
+ #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__
+ #define __EDKII_GLUE_BASE_MEMORY_LIB__
+ #endif
+ #ifndef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__
+ #define __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__
+ #endif
+#endif
+
+//
+// PeiHobLib
+//
+#ifdef __EDKII_GLUE_PEI_HOB_LIB__
+ #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__
+ #define __EDKII_GLUE_BASE_MEMORY_LIB__
+ #endif
+ #ifndef __EDKII_GLUE_PEI_SERVICES_LIB__
+ #define __EDKII_GLUE_PEI_SERVICES_LIB__
+ #endif
+#endif
+
+//
+// PeiMemoryAllocationLib
+//
+#ifdef __EDKII_GLUE_PEI_MEMORY_ALLOCATION_LIB__
+ #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__
+ #define __EDKII_GLUE_BASE_MEMORY_LIB__
+ #endif
+ #ifndef __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__
+ #define __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__
+ #endif
+ //
+ // If necessary, __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__ can be
+ // replaced with __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB__
+ //
+#endif
+
+//
+// PeiResourcePublicationLib
+//
+#ifdef __EDKII_GLUE_PEI_RESOURCE_PUBLICATION_LIB__
+ #ifndef __EDKII_GLUE_PEI_SERVICES_LIB__
+ #define __EDKII_GLUE_PEI_SERVICES_LIB__
+ #endif
+#endif
+
+//
+// PeiServicesLib
+//
+#ifdef __EDKII_GLUE_PEI_SERVICES_LIB__
+ #ifndef __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__
+ #define __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__
+ #endif
+ //
+ // If necessary, __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__ can be
+ // replaced with __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB__
+ //
+#endif
+
+//
+// PeiSmbusLib
+//
+#ifdef __EDKII_GLUE_PEI_SMBUS_LIB__
+ #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__
+ #define __EDKII_GLUE_BASE_MEMORY_LIB__
+ #endif
+ #ifndef __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__
+ #define __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__
+ #endif
+ //
+ // If necessary, __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__ can be
+ // replaced with __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB__
+ //
+#endif
+
+//
+// PeiServicesTablePointerLibMm7
+//
+#ifdef __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__
+ #ifndef __EDKII_GLUE_BASE_LIB__
+ #define __EDKII_GLUE_BASE_LIB__
+ #endif
+#endif
+
+//
+// UefiDriverModelLib
+//
+#ifdef __EDKII_GLUE_UEFI_DRIVER_MODEL_LIB__
+ #ifndef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__
+ #define __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__
+ #endif
+#endif
+
+
+//
+// UefiBootServicesTableLib
+#ifdef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__
+#endif
+
+//
+// BasePrintLib
+//
+#ifdef __EDKII_GLUE_BASE_PRINT_LIB__
+ #ifndef __EDKII_GLUE_BASE_LIB__
+ #define __EDKII_GLUE_BASE_LIB__
+ #endif
+#endif
+
+//
+// BaseMemoryLib
+//
+#ifdef __EDKII_GLUE_BASE_MEMORY_LIB__
+ #ifndef __EDKII_GLUE_BASE_LIB__
+ #define __EDKII_GLUE_BASE_LIB__
+ #endif
+#endif
+
+//
+// BasePostCodeLibPort80
+//
+#ifdef __EDKII_GLUE_BASE_POST_CODE_LIB_PORT_80__
+ #ifndef __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__
+ #define __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__
+ #endif
+#endif
+
+//
+// BaseIoLibIntrinsic
+//
+#ifdef __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__
+ #ifndef __EDKII_GLUE_BASE_LIB__
+ #define __EDKII_GLUE_BASE_LIB__
+ #endif
+#endif
+
+//
+// BaseCacheMaintenanceLib
+//
+#ifdef __EDKII_GLUE_BASE_CACHE_MAINTENANCE_LIB__
+ #ifndef __EDKII_GLUE_BASE_LIB__
+ #define __EDKII_GLUE_BASE_LIB__
+ #endif
+#endif
+
+//
+// BaseLib
+//
+#ifdef __EDKII_GLUE_BASE_LIB__
+#endif
+
+//
+// UefiRuntimeServicesTableLib
+//
+#ifdef __EDKII_GLUE_UEFI_RUNTIME_SERVICES_TABLE_LIB__
+
+#endif
+
+//
+// BasePeCoffGetEntryPointLib
+//
+#ifdef __EDKII_GLUE_BASE_PE_COFF_GET_ENTRY_POINT_LIB__
+#endif
+
+//
+// PeiServicesTablePointerLib
+//
+#ifdef __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB__
+#endif
+
+//
+// BasePostCodeLibDebug
+//
+#ifdef __EDKII_GLUE_BASE_POST_CODE_LIB_DEBUG__
+ //
+ // A DebugLib instance
+ // Usually either EdkIIGluePeiDebugLibReportStatusCodeLib or EdkIIGlueDxeDebugLibReportStatusCodeLib is listed in module inf
+ //
+#endif
+
+//
+// PeiDxePostCodeLibReportStatusCode
+//
+#ifdef __EDKII_GLUE_PEI_DXE_POST_CODE_LIB_REPORT_STATUS_CODE__
+ //
+ // PEI or DXE ReportStatusCodeLib instance
+ // Usually EdkIIGluePei/DxeReportStatusCodeLib is listed in module inf
+ //
+#endif
+
+
+//
+// Check against multiple instances of same library class being used
+//
+#if defined(__EDKII_GLUE_PEI_DEBUG_LIB_REPORT_STATUS_CODE__) && defined(__EDKII_GLUE_BASE_DEBUG_LIB_NULL__)
+ #error EdkIIGluePeiDebugLibReportStatusCode and EdkIIGlueBaseDebugLibNull: can only be mutual exclusively used.
+#endif
+
+#if defined(__EDKII_GLUE_DXE_DEBUG_LIB_REPORT_STATUS_CODE__) && defined(__EDKII_GLUE_BASE_DEBUG_LIB_NULL__)
+ #error EdkIIGlueDxeDebugLibReportStatusCode and EdkIIGlueBaseDebugLibNull: can only be mutual exclusively used.
+#endif
+
+#if defined(__EDKII_GLUE_PEI_DEBUG_LIB_REPORT_STATUS_CODE__) && defined(__EDKII_GLUE_DXE_DEBUG_LIB_REPORT_STATUS_CODE__)
+ #error EdkIIGluePeiDebugLibReportStatusCode and EdkIIGlueDxeDebugLibReportStatusCode: can only be mutual exclusively used.
+#endif
+
+#if defined(__EDKII_GLUE_BASE_PCI_LIB_PCI_EXPRESS__) && defined(__EDKII_GLUE_BASE_PCI_LIB_CF8__)
+ #error EdkIIGluePciLibPciExpress and EdkIIGluePciLibCf8: can only be mutual exclusively used.
+#endif
+
+#if defined (__EDKII_GLUE_DXE_HOB_LIB__) && defined(__EDKII_GLUE_PEI_HOB_LIB__)
+ #error EdkIIGlueDxeHobLib and EdkIIGluePeiHobLib: can only be mutual exclusively used.
+#endif
+
+#if defined(__EDKII_GLUE_BASE_POST_CODE_LIB_PORT_80__) && defined(__EDKII_GLUE_BASE_POST_CODE_LIB_DEBUG__)
+ #error EdkIIGlueBasePostCodeLibPort80 and EdkIIGlueBasePostCodeLibDebug: can only be mutual exclusively used.
+#endif
+
+#if defined(__EDKII_GLUE_BASE_POST_CODE_LIB_PORT_80__) && defined(__EDKII_GLUE_PEI_DXE_POST_CODE_LIB_REPORT_STATUS_CODE__)
+ #error EdkIIGlueBasePostCodeLibPort80 and EdkIIGluePeiDxePostCodeLibReportStatusCode: can only be mutual exclusively used.
+#endif
+
+#if defined(__EDKII_GLUE_BASE_POST_CODE_LIB_DEBUG__) && defined(__EDKII_GLUE_PEI_DXE_POST_CODE_LIB_REPORT_STATUS_CODE__)
+ #error EdkIIGlueBasePostCodeLibDebug and EdkIIGluePeiDxePostCodeLibReportStatusCode: can only be mutual exclusively used.
+#endif
+
+#if defined(__EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB__) && defined(__EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__)
+ #error EdkIIGluePeiServicesTablePointerLib and EdkIIGluePeiServicesTablePointerLibMm7: can only be mutual exclusively used.
+#endif
+
+#if defined(__EDKII_GLUE_DXE_REPORT_STATUS_CODE_LIB__) && defined(__EDKII_GLUE_PEI_REPORT_STATUS_CODE_LIB__)
+ #error EdkIIGlueDxeReportStatusCodeLib and EdkIIGluePeiReportStatusCodeLib: can only be mutual exclusively used.
+#endif
+
+#if defined(__EDKII_GLUE_SMM_RUNTIME_DXE_REPORT_STATUS_CODE_LIB__) && defined(__EDKII_GLUE_PEI_REPORT_STATUS_CODE_LIB__)
+ #error EdkIIGlueSmmRuntimeDxeReportStatusCodeLib and EdkIIGluePeiReportStatusCodeLib: can only be mutual exclusively used.
+#endif
+
+#if defined(__EDKII_GLUE_DXE_REPORT_STATUS_CODE_LIB__) && defined(__EDKII_GLUE_SMM_RUNTIME_DXE_REPORT_STATUS_CODE_LIB__)
+ #error EdkIIGlueDxeReportStatusCodeLib and EdkIIGlueSmmRuntimeDxeReportStatusCodeLib: can only be mutual exclusively used.
+#endif
+
+#if defined(__EDKII_GLUE_DXE_MEMORY_ALLOCATION_LIB__) && defined(__EDKII_GLUE_PEI_MEMORY_ALLOCATION_LIB__)
+ #error EdkIIGlueDxeMemoryAllocationLib and EdkIIGluePeiMemoryAllocationLib: can only be mutual exclusively used.
+#endif
+
+#if defined(__EDKII_GLUE_DXE_SMBUS_LIB__) && defined(__EDKII_GLUE_PEI_SMBUS_LIB__)
+ #error EdkIIGlueDxeSmbusLib and EdkIIGluePeiSmbusLib: can only be mutual exclusively used.
+#endif
+
+//
+// Some instances must be supplied
+//
+#ifdef __EDKII_GLUE_PEI_DEBUG_LIB_REPORT_STATUS_CODE__
+ #if !defined(__EDKII_GLUE_PEI_REPORT_STATUS_CODE_LIB__)
+ #error You use EdkIIGluePeiDebugLibReportStatusCode, \
+ so EdkIIGluePeiReportStatusCodeLib must be supplied
+ #endif
+#endif
+
+#ifdef __EDKII_GLUE_DXE_DEBUG_LIB_REPORT_STATUS_CODE__
+ #if !defined(__EDKII_GLUE_DXE_REPORT_STATUS_CODE_LIB__) \
+ && !defined(__EDKII_GLUE_SMM_RUNTIME_DXE_REPORT_STATUS_CODE_LIB__)
+ #error You use EdkIIGlueDxeDebugLibReportStatusCode, \
+ so either EdkIIGlueDxeReportStatusCodeLib, or EdkIIGlueSmmRuntimeDxeReportStatusCodeLib must be supplied
+ #endif
+#endif
+
+#ifdef __EDKII_GLUE_BASE_POST_CODE_LIB_DEBUG__
+ #if !defined(__EDKII_GLUE_PEI_DEBUG_LIB_REPORT_STATUS_CODE__) \
+ && !defined(__EDKII_GLUE_DXE_DEBUG_LIB_REPORT_STATUS_CODE__) \
+ && !defined(__EDKII_GLUE_BASE_DEBUG_LIB_NULL__)
+ #error You use EdkIIGlueBasePostCodeLibDebug, so either EdkIIGluePeiDebugLibReportStatusCode, EdkIIGlueDxeDebugLibReportStatusCode, \
+ or EdkIIGlueBaseDebugLibNull must be supplied
+ #endif
+#endif
+
+//
+// EdkIIGlueUefiDriverModelLib used, but no Driver Binding Protocol defined
+//
+#ifdef __EDKII_GLUE_UEFI_DRIVER_MODEL_LIB__
+ #ifndef __EDKII_GLUE_DRIVER_BINDING_PROTOCOL_INSTANCE__
+ #error "EdkIIGlueUefiDriverModelLib used, but no Driver Binding Protocol defined. Please define __EDKII_GLUE_DRIVER_BINDING_PROTOCOL_INSTANCE__."
+ #endif
+#endif
+
+//
+// EdkII Glue Library Constructors:
+// NOTE: the constructors must be called according to dependency order
+//
+// UefiBootServicesTableLib UefiBootServicesTableLibConstructor()
+// UefiRuntimeServicesTableLib UefiRuntimeServicesTableLibConstructor()
+// EdkDxeRuntimeDriverLib RuntimeDriverLibConstruct()
+// SmmRuntimeDxeReportStatusCodeLib ReportStatusCodeLibConstruct()
+// DxeHobLib HobLibConstructor()
+// UefiDriverModelLib UefiDriverModelLibConstructor()
+// PeiServicesTablePointerLib PeiServicesTablePointerLibConstructor()
+// PeiServicesTablePointerLibMm7 PeiServicesTablePointerLibConstructor()
+// DxeSmbusLib SmbusLibConstructor()
+// DxeServicesTableLib DxeServicesTableLibConstructor()
+//
+
+#ifdef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__
+EFI_STATUS
+UefiBootServicesTableLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+#endif
+
+#ifdef __EDKII_GLUE_UEFI_RUNTIME_SERVICES_TABLE_LIB__
+EFI_STATUS
+UefiRuntimeServicesTableLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+#endif
+
+#ifdef __EDKII_GLUE_EDK_DXE_RUNTIME_DRIVER_LIB__
+EFI_STATUS
+RuntimeDriverLibConstruct (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+#endif
+
+#ifdef __EDKII_GLUE_SMM_RUNTIME_DXE_REPORT_STATUS_CODE_LIB__
+EFI_STATUS
+EFIAPI
+ReportStatusCodeLibConstruct (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+#endif
+
+#ifdef __EDKII_GLUE_DXE_HOB_LIB__
+EFI_STATUS
+HobLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+#endif
+
+#ifdef __EDKII_GLUE_UEFI_DRIVER_MODEL_LIB__
+EFI_STATUS
+UefiDriverModelLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+#endif
+
+#ifdef __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB__
+EFI_STATUS
+PeiServicesTablePointerLibConstructor (
+ IN EFI_FFS_FILE_HEADER *FfsHeader,
+ IN EFI_PEI_SERVICES **PeiServices
+ );
+#endif
+
+#ifdef __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__
+EFI_STATUS
+PeiServicesTablePointerLibConstructor (
+ IN EFI_FFS_FILE_HEADER *FfsHeader,
+ IN EFI_PEI_SERVICES **PeiServices
+ );
+#endif
+
+#ifdef __EDKII_GLUE_DXE_SMBUS_LIB__
+EFI_STATUS
+EFIAPI
+SmbusLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+#endif
+
+#ifdef __EDKII_GLUE_DXE_SERVICES_TABLE_LIB__
+EFI_STATUS
+DxeServicesTableLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+#endif
+
+//
+// EdkII Glue Library Destructors:
+// NOTE: the destructors must be called according to dependency order
+//
+// UefiDriverModelLibDestructor UefiDriverModelLibDestructor()
+// SmmRuntimeDxeReportStatusCodeLib ReportStatusCodeLibDestruct()
+// EdkDxeRuntimeDriverLib RuntimeDriverLibDeconstruct()
+//
+#ifdef __EDKII_GLUE_UEFI_DRIVER_MODEL_LIB__
+EFI_STATUS
+UefiDriverModelLibDestructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+#endif
+
+#ifdef __EDKII_GLUE_SMM_RUNTIME_DXE_REPORT_STATUS_CODE_LIB__
+EFI_STATUS
+EFIAPI
+ReportStatusCodeLibDestruct (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+#endif
+
+#ifdef __EDKII_GLUE_EDK_DXE_RUNTIME_DRIVER_LIB__
+EFI_STATUS
+RuntimeDriverLibDeconstruct (
+ VOID
+ );
+#endif
+
+#endif