+++ /dev/null
-/*++\r
-\r
-Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials \r
-are licensed and made available under the terms and conditions of the BSD License \r
-which accompanies this distribution. The full text of the license may be found at \r
-http://opensource.org/licenses/bsd-license.php \r
- \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
-\r
-Module Name:\r
-\r
- EdkIIGlueDepedencies.h\r
-\r
-Abstract:\r
-\r
- Header file that lists dependency relations among library instances\r
-\r
---*/\r
-\r
-#ifndef __EDKII_GLUE_DEPENDENCIES_H__\r
-#define __EDKII_GLUE_DEPENDENCIES_H__\r
-\r
-#include "EdkIIGlueProcessorBind.h"\r
-\r
-//\r
-// Declarations of dependencies among EDKII Glue Library instances and EDK Libraries\r
-// Pay attention to the order of following #define structures\r
-//\r
-\r
-\r
-//\r
-// PeiDxeDebugLibReportStatusCode\r
-// Actually almost every module and GlueLib instance needs this library, but GlueLib\r
-// instances don't have to list this library in their own inf files. Module inf\r
-// does this.\r
-//\r
-#ifdef __EDKII_GLUE_PEI_DXE_DEBUG_LIB_REPORT_STATUS_CODE__\r
- #ifndef __EDKII_GLUE_BASE_LIB__\r
- #define __EDKII_GLUE_BASE_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #define __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// BaseDebugLibNull\r
-//\r
-#ifdef __EDKII_GLUE_BASE_DEBUG_LIB_NULL__\r
- #ifndef __EDKII_GLUE_BASE_LIB__\r
- #define __EDKII_GLUE_BASE_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #define __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_BASE_PRINT_LIB__\r
- #define __EDKII_GLUE_BASE_PRINT_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// DxePerformanceLib\r
-//\r
-#ifdef __EDKII_GLUE_DXE_PERFORMANCE_LIB__\r
- #ifndef __EDKII_GLUE_BASE_LIB__\r
- #define __EDKII_GLUE_BASE_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #define __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_DXE_MEMORY_ALLOCATION_LIB__\r
- #define __EDKII_GLUE_DXE_MEMORY_ALLOCATION_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_DXE_HOB_LIB__\r
- #define __EDKII_GLUE_DXE_HOB_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__\r
- #define __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_UEFI_LIB__\r
- #define __EDKII_GLUE_UEFI_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// PeiPerformanceLib\r
-//\r
-#ifdef __EDKII_GLUE_PEI_PERFORMANCE_LIB__\r
- #ifndef __EDKII_GLUE_BASE_LIB__\r
- #define __EDKII_GLUE_BASE_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #define __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_PEI_SERVICES_LIB__\r
- #define __EDKII_GLUE_PEI_SERVICES_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// EdkDxeRuntimeDriverLib\r
-//\r
-#ifdef __EDKII_GLUE_EDK_DXE_RUNTIME_DRIVER_LIB__\r
- #ifndef __EDKII_GLUE_UEFI_LIB__\r
- #define __EDKII_GLUE_UEFI_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_BASE_LIB__\r
- #define __EDKII_GLUE_BASE_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__\r
- #define __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// EdkDxeSalLib\r
-//\r
-#ifdef __EDKII_GLUE_EDK_DXE_SAL_LIB__\r
- #ifndef __EDKII_GLUE_BASE_LIB__\r
- #define __EDKII_GLUE_BASE_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__\r
- #define __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// BasePciLibCf8\r
-//\r
-#ifdef __EDKII_GLUE_BASE_PCI_LIB_CF8__\r
- #ifndef __EDKII_GLUE_BASE_PCI_CF8_LIB__\r
- #define __EDKII_GLUE_BASE_PCI_CF8_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// BasePciLibPciExpress\r
-//\r
-#ifdef __EDKII_GLUE_BASE_PCI_LIB_PCI_EXPRESS__\r
- #ifndef __EDKII_GLUE_BASE_PCI_EXPRESS_LIB__\r
- #define __EDKII_GLUE_BASE_PCI_EXPRESS_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// BasePciCf8Lib\r
-//\r
-#ifdef __EDKII_GLUE_BASE_PCI_CF8_LIB__\r
-#ifndef MDE_CPU_EBC\r
- #ifndef __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__\r
- #define __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__\r
- #endif\r
-#else\r
- #ifndef __EDKII_GLUE_DXE_IO_LIB_CPU_IO__\r
- #define __EDKII_GLUE_DXE_IO_LIB_CPU_IO__\r
- #endif\r
-#endif \r
-#endif\r
-\r
-//\r
-// BasePciExpressLib\r
-//\r
-#ifdef __EDKII_GLUE_BASE_PCI_EXPRESS_LIB__\r
-#ifndef MDE_CPU_EBC\r
- #ifndef __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__\r
- #define __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__\r
- #endif\r
-#else\r
- #ifndef __EDKII_GLUE_DXE_IO_LIB_CPU_IO__\r
- #define __EDKII_GLUE_DXE_IO_LIB_CPU_IO__\r
- #endif\r
-#endif\r
-#endif\r
-\r
-//\r
-// BaseTimerLibLocalApic\r
-//\r
-#ifdef __EDKII_GLUE_BASE_TIMER_LIB_LOCAL_APIC__\r
- #ifndef __EDKII_GLUE_BASE_LIB__\r
- #define __EDKII_GLUE_BASE_LIB__\r
- #endif\r
-#ifndef MDE_CPU_EBC \r
- #ifndef __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__\r
- #define __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__\r
- #endif\r
-#else\r
- #ifndef __EDKII_GLUE_DXE_IO_LIB_CPU_IO__\r
- #define __EDKII_GLUE_DXE_IO_LIB_CPU_IO__\r
- #endif\r
-#endif \r
-#endif\r
-\r
-//\r
-// DxeReportStatusCodeLib\r
-//\r
-#ifdef __EDKII_GLUE_DXE_REPORT_STATUS_CODE_LIB__\r
- #ifndef __EDKII_GLUE_BASE_LIB__\r
- #define __EDKII_GLUE_BASE_LIB__\r
- #endif\r
-#ifndef MDE_CPU_EBC\r
- #ifndef __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__\r
- #define __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__\r
- #endif\r
-#else\r
- #ifndef __EDKII_GLUE_DXE_IO_LIB_CPU_IO__\r
- #define __EDKII_GLUE_DXE_IO_LIB_CPU_IO__\r
- #endif\r
-#endif \r
- #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #define __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__\r
- #define __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_UEFI_RUNTIME_SERVICES_TABLE_LIB__\r
- #define __EDKII_GLUE_UEFI_RUNTIME_SERVICES_TABLE_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// SmmRuntimeDxeReportStatusCodeLib - typically used by SMM driver and Runtime driver\r
-//\r
-#ifdef __EDKII_GLUE_SMM_RUNTIME_DXE_REPORT_STATUS_CODE_LIB__\r
- #ifndef __EDKII_GLUE_BASE_LIB__\r
- #define __EDKII_GLUE_BASE_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #define __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__\r
- #define __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_UEFI_RUNTIME_SERVICES_TABLE_LIB__\r
- #define __EDKII_GLUE_UEFI_RUNTIME_SERVICES_TABLE_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// PeiReportStatusCodeLib\r
-//\r
-#ifdef __EDKII_GLUE_PEI_REPORT_STATUS_CODE_LIB__\r
- #ifndef __EDKII_GLUE_BASE_LIB__\r
- #define __EDKII_GLUE_BASE_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #define __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #endif\r
-#ifndef MDE_CPU_EBC \r
- #ifndef __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__\r
- #define __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__\r
- #endif\r
-#else\r
- #ifndef __EDKII_GLUE_DXE_IO_LIB_CPU_IO__\r
- #define __EDKII_GLUE_DXE_IO_LIB_CPU_IO__\r
- #endif\r
-#endif \r
-#if defined(MDE_CPU_IA32) || defined(MDE_CPU_X64) \r
- #ifndef __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__\r
- #define __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__\r
- #endif\r
-#endif \r
- //\r
- // If necessary, __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__ or\r
- // can be replaced with __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB__\r
- //\r
-#endif\r
-\r
-//\r
-// BasePeCoffLib\r
-//\r
-#ifdef __EDKII_GLUE_BASE_PE_COFF_LIB__\r
- #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #define __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// BaseUefiDecompressLib\r
-//\r
-#ifdef __EDKII_GLUE_BASE_UEFI_DECOMPRESS_LIB__\r
- #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #define __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// DxeHobLib\r
-//\r
-#ifdef __EDKII_GLUE_DXE_HOB_LIB__\r
- #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #define __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_UEFI_LIB__\r
- #define __EDKII_GLUE_UEFI_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// HiiLib\r
-//\r
-#ifdef __EDKII_GLUE_HII_LIB__\r
- #ifndef __EDKII_GLUE_DXE_MEMORY_ALLOCATION_LIB__\r
- #define __EDKII_GLUE_DXE_MEMORY_ALLOCATION_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// UefiDevicePathLib\r
-//\r
-#ifdef __EDKII_GLUE_UEFI_DEVICE_PATH_LIB__\r
- #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #define __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__\r
- #define __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_DXE_MEMORY_ALLOCATION_LIB__\r
- #define __EDKII_GLUE_DXE_MEMORY_ALLOCATION_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// DxeServicesTableLib\r
-//\r
-#ifdef __EDKII_GLUE_DXE_SERVICES_TABLE_LIB__\r
- #ifndef __EDKII_GLUE_UEFI_LIB__\r
- #define __EDKII_GLUE_UEFI_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// UefiLib\r
-//\r
-#ifdef __EDKII_GLUE_UEFI_LIB__\r
- #ifndef __EDKII_GLUE_BASE_LIB__\r
- #define __EDKII_GLUE_BASE_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #define __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__\r
- #define __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_DXE_MEMORY_ALLOCATION_LIB__\r
- #define __EDKII_GLUE_DXE_MEMORY_ALLOCATION_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// DxeMemoryAllocationLib\r
-//\r
-#ifdef __EDKII_GLUE_DXE_MEMORY_ALLOCATION_LIB__\r
- #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #define __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__\r
- #define __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// DxeSmbusLib\r
-//\r
-#ifdef __EDKII_GLUE_DXE_SMBUS_LIB__\r
- #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #define __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__\r
- #define __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// PeiHobLib\r
-//\r
-#ifdef __EDKII_GLUE_PEI_HOB_LIB__\r
- #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #define __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_PEI_SERVICES_LIB__\r
- #define __EDKII_GLUE_PEI_SERVICES_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// PeiMemoryAllocationLib\r
-//\r
-#ifdef __EDKII_GLUE_PEI_MEMORY_ALLOCATION_LIB__\r
- #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #define __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #endif\r
-#if defined(MDE_CPU_IA32) || defined(MDE_CPU_X64) \r
- #ifndef __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__\r
- #define __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__\r
- #endif\r
-#endif \r
- //\r
- // If necessary, __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__ or\r
- // can be replaced with __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB__\r
- //\r
-#endif\r
-\r
-//\r
-// PeiResourcePublicationLib\r
-//\r
-#ifdef __EDKII_GLUE_PEI_RESOURCE_PUBLICATION_LIB__\r
- #ifndef __EDKII_GLUE_PEI_SERVICES_LIB__\r
- #define __EDKII_GLUE_PEI_SERVICES_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// PeiServicesLib\r
-//\r
-#ifdef __EDKII_GLUE_PEI_SERVICES_LIB__\r
-#if defined(MDE_CPU_IA32) || defined(MDE_CPU_X64) \r
- #ifndef __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__\r
- #define __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__\r
- #endif\r
-#endif \r
- //\r
- // If necessary, __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__ or\r
- // can be replaced with __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB__\r
- //\r
-#endif\r
-\r
-//\r
-// PeiSmbusLib\r
-//\r
-#ifdef __EDKII_GLUE_PEI_SMBUS_LIB__\r
- #ifndef __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #define __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #endif\r
-#if defined(MDE_CPU_IA32) || defined(MDE_CPU_X64) \r
- #ifndef __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__\r
- #define __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__\r
- #endif\r
-#endif \r
- //\r
- // If necessary, __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__ or\r
- // can be replaced with __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB__\r
- //\r
-#endif\r
-\r
-//\r
-// PeiServicesTablePointerLibMm7\r
-//\r
-#ifdef __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__\r
- #ifndef __EDKII_GLUE_BASE_LIB__\r
- #define __EDKII_GLUE_BASE_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// PeiServicesTablePointerLibKr1\r
-//\r
-#ifdef __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_KR1__\r
- #ifndef __EDKII_GLUE_BASE_LIB__\r
- #define __EDKII_GLUE_BASE_LIB__\r
- #endif\r
-#endif\r
-\r
-\r
-//\r
-// UefiDriverModelLib\r
-//\r
-#ifdef __EDKII_GLUE_UEFI_DRIVER_MODEL_LIB__\r
- #ifndef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__\r
- #define __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// BasePrintLib\r
-//\r
-#ifdef __EDKII_GLUE_BASE_PRINT_LIB__\r
- #ifndef __EDKII_GLUE_BASE_LIB__\r
- #define __EDKII_GLUE_BASE_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// BaseMemoryLib\r
-//\r
-#ifdef __EDKII_GLUE_BASE_MEMORY_LIB__\r
- #ifndef __EDKII_GLUE_BASE_LIB__\r
- #define __EDKII_GLUE_BASE_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// BasePostCodeLibPort80\r
-//\r
-#ifdef __EDKII_GLUE_BASE_POST_CODE_LIB_PORT_80__\r
-#ifndef MDE_CPU_EBC\r
- #ifndef __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__\r
- #define __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__\r
- #endif\r
-#else\r
- #ifndef __EDKII_GLUE_DXE_IO_LIB_CPU_IO__\r
- #define __EDKII_GLUE_DXE_IO_LIB_CPU_IO__\r
- #endif\r
-#endif \r
-#endif\r
-\r
-//\r
-// BaseIoLibIntrinsic\r
-//\r
-#ifdef __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__\r
- #ifndef __EDKII_GLUE_BASE_LIB__\r
- #define __EDKII_GLUE_BASE_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// DxeIoLibCpuIo\r
-//\r
-#ifdef __EDKII_GLUE_DXE_IO_LIB_CPU_IO__\r
- #ifndef __EDKII_GLUE_BASE_LIB__\r
- #define __EDKII_GLUE_BASE_LIB__\r
- #endif\r
- #ifndef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__\r
- #define __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// UefiBootServicesTableLib\r
-//\r
-#ifdef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__\r
-#endif\r
-\r
-//\r
-// BaseCacheMaintenanceLib\r
-//\r
-#ifdef __EDKII_GLUE_BASE_CACHE_MAINTENANCE_LIB__\r
- #ifndef __EDKII_GLUE_BASE_LIB__\r
- #define __EDKII_GLUE_BASE_LIB__\r
- #endif\r
-#endif\r
-\r
-//\r
-// BaseLib\r
-//\r
-#ifdef __EDKII_GLUE_BASE_LIB__\r
-#endif\r
-\r
-//\r
-// UefiRuntimeServicesTableLib\r
-//\r
-#ifdef __EDKII_GLUE_UEFI_RUNTIME_SERVICES_TABLE_LIB__\r
-#endif\r
-\r
-//\r
-// BasePeCoffGetEntryPointLib\r
-//\r
-#ifdef __EDKII_GLUE_BASE_PE_COFF_GET_ENTRY_POINT_LIB__\r
-#endif\r
-\r
-//\r
-// PeiServicesTablePointerLib\r
-//\r
-#ifdef __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB__\r
-#endif\r
-\r
-//\r
-// BasePostCodeLibDebug\r
-//\r
-#ifdef __EDKII_GLUE_BASE_POST_CODE_LIB_DEBUG__\r
- //\r
- // A DebugLib instance\r
- // Usually EdkIIGluePeiDxeDebugLibReportStatusCodeLib is listed in module inf\r
- //\r
-#endif\r
-\r
-//\r
-// PeiDxePostCodeLibReportStatusCode\r
-//\r
-#ifdef __EDKII_GLUE_PEI_DXE_POST_CODE_LIB_REPORT_STATUS_CODE__\r
- //\r
- // PEI or DXE ReportStatusCodeLib instance\r
- // Usually EdkIIGluePei/DxeReportStatusCodeLib is listed in module inf\r
- //\r
-#endif\r
-\r
-//\r
-// Whether _gDriverExitBootServicesEvent[] contains effective handler\r
-//\r
-#if defined(__EDKII_GLUE_EDK_DXE_RUNTIME_DRIVER_LIB__) || defined(__EDKII_GLUE_EXIT_BOOT_SERVICES_EVENT_HANDLER__)\r
- #define __EDKII_GLUE_HAVE_DRIVER_EXIT_BOOT_SERVICES_EVENT__ 1\r
-#else \r
- #define __EDKII_GLUE_HAVE_DRIVER_EXIT_BOOT_SERVICES_EVENT__ 0\r
-#endif\r
-\r
-//\r
-// Check against multiple instances of same library class being used\r
-//\r
-#if defined(__EDKII_GLUE_PEI_DXE_DEBUG_LIB_REPORT_STATUS_CODE__) && defined(__EDKII_GLUE_BASE_DEBUG_LIB_NULL__)\r
- #error EdkIIGluePeiDxeDebugLibReportStatusCode and EdkIIGlueBaseDebugLibNull: can only be mutual exclusively used.\r
-#endif\r
-\r
-#if defined(__EDKII_GLUE_BASE_PCI_LIB_PCI_EXPRESS__) && defined(__EDKII_GLUE_BASE_PCI_LIB_CF8__)\r
- #error EdkIIGluePciLibPciExpress and EdkIIGluePciLibCf8: can only be mutual exclusively used.\r
-#endif\r
-\r
-#if defined(__EDKII_GLUE_DXE_HOB_LIB__) && defined(__EDKII_GLUE_PEI_HOB_LIB__)\r
- #error EdkIIGlueDxeHobLib and EdkIIGluePeiHobLib: can only be mutual exclusively used.\r
-#endif\r
-\r
-#if defined(__EDKII_GLUE_BASE_POST_CODE_LIB_PORT_80__) && defined(__EDKII_GLUE_BASE_POST_CODE_LIB_DEBUG__)\r
- #error EdkIIGlueBasePostCodeLibPort80 and EdkIIGlueBasePostCodeLibDebug: can only be mutual exclusively used.\r
-#endif\r
-\r
-#if defined(__EDKII_GLUE_BASE_POST_CODE_LIB_PORT_80__) && defined(__EDKII_GLUE_PEI_DXE_POST_CODE_LIB_REPORT_STATUS_CODE__)\r
- #error EdkIIGlueBasePostCodeLibPort80 and EdkIIGluePeiDxePostCodeLibReportStatusCode: can only be mutual exclusively used.\r
-#endif\r
-\r
-#if defined(__EDKII_GLUE_BASE_POST_CODE_LIB_DEBUG__) && defined(__EDKII_GLUE_PEI_DXE_POST_CODE_LIB_REPORT_STATUS_CODE__)\r
- #error EdkIIGlueBasePostCodeLibDebug and EdkIIGluePeiDxePostCodeLibReportStatusCode: can only be mutual exclusively used.\r
-#endif\r
-\r
-#if defined(__EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB__) && defined(__EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__)\r
- #error EdkIIGluePeiServicesTablePointerLib and EdkIIGluePeiServicesTablePointerLibMm7: can only be mutual exclusively used.\r
-#endif\r
-\r
-#if defined(__EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB__) && defined(__EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_KR1__)\r
- #error EdkIIGluePeiServicesTablePointerLib and EdkIIGluePeiServicesTablePointerLibKr1: can only be mutual exclusively used.\r
-#endif\r
-\r
-#if defined(__EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__) && defined(__EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_KR1__)\r
- #error EdkIIGluePeiServicesTablePointerLibMm7 and EdkIIGluePeiServicesTablePointerLibKr1: can only be mutual exclusively used.\r
-#endif\r
-\r
-#if defined(__EDKII_GLUE_DXE_REPORT_STATUS_CODE_LIB__) && defined(__EDKII_GLUE_PEI_REPORT_STATUS_CODE_LIB__)\r
- #error EdkIIGlueDxeReportStatusCodeLib and EdkIIGluePeiReportStatusCodeLib: can only be mutual exclusively used.\r
-#endif\r
-\r
-#if defined(__EDKII_GLUE_SMM_RUNTIME_DXE_REPORT_STATUS_CODE_LIB__) && defined(__EDKII_GLUE_PEI_REPORT_STATUS_CODE_LIB__)\r
- #error EdkIIGlueSmmRuntimeDxeReportStatusCodeLib and EdkIIGluePeiReportStatusCodeLib: can only be mutual exclusively used.\r
-#endif\r
-\r
-#if defined(__EDKII_GLUE_DXE_REPORT_STATUS_CODE_LIB__) && defined(__EDKII_GLUE_SMM_RUNTIME_DXE_REPORT_STATUS_CODE_LIB__)\r
- #error EdkIIGlueDxeReportStatusCodeLib and EdkIIGlueSmmRuntimeDxeReportStatusCodeLib: can only be mutual exclusively used.\r
-#endif\r
-\r
-#if defined(__EDKII_GLUE_DXE_MEMORY_ALLOCATION_LIB__) && defined(__EDKII_GLUE_PEI_MEMORY_ALLOCATION_LIB__)\r
- #error EdkIIGlueDxeMemoryAllocationLib and EdkIIGluePeiMemoryAllocationLib: can only be mutual exclusively used.\r
-#endif\r
-\r
-#if defined(__EDKII_GLUE_DXE_SMBUS_LIB__) && defined(__EDKII_GLUE_PEI_SMBUS_LIB__)\r
- #error EdkIIGlueDxeSmbusLib and EdkIIGluePeiSmbusLib: can only be mutual exclusively used.\r
-#endif\r
-\r
-#if defined(__EDKII_GLUE_BASE_IO_LIB_INTRINSIC__) && defined(__EDKII_GLUE_DXE_IO_LIB_CPU_IO__)\r
- #error EdkIIGlueBaseIoLibIntrinsic and EdkIIGlueDxeIoLibCpuIo: can only be mutual exclusively used.\r
-#endif\r
-\r
-//\r
-// Some instances must be supplied\r
-//\r
-#ifdef __EDKII_GLUE_PEI_DXE_DEBUG_LIB_REPORT_STATUS_CODE__\r
- #if !defined(__EDKII_GLUE_DXE_REPORT_STATUS_CODE_LIB__) \\r
- && !defined(__EDKII_GLUE_PEI_REPORT_STATUS_CODE_LIB__) \\r
- && !defined(__EDKII_GLUE_SMM_RUNTIME_DXE_REPORT_STATUS_CODE_LIB__)\r
- #error You use EdkIIGluePeiDxeDebugLibReportStatusCode, \\r
- so either EdkIIGlueDxeReportStatusCodeLib, EdkIIGluePeiReportStatusCodeLib, \\r
- or EdkIIGlueSmmRuntimeDxeReportStatusCodeLib must be supplied\r
- #endif\r
-#endif\r
-\r
-#ifdef __EDKII_GLUE_BASE_POST_CODE_LIB_DEBUG__\r
- #if !defined(__EDKII_GLUE_PEI_DXE_DEBUG_LIB_REPORT_STATUS_CODE__) && !defined(__EDKII_GLUE_BASE_DEBUG_LIB_NULL__)\r
- #error You use EdkIIGlueBasePostCodeLibDebug, so either EdkIIGluePeiDxeDebugLibReportStatusCode or EdkIIGlueBaseDebugLibNull must be supplied\r
- #endif\r
-#endif\r
-\r
-//\r
-// EdkIIGlueUefiDriverModelLib used, but no Driver Binding Protocol defined\r
-//\r
-#ifdef __EDKII_GLUE_UEFI_DRIVER_MODEL_LIB__\r
- #ifndef __EDKII_GLUE_DRIVER_BINDING_PROTOCOL_INSTANCE__\r
- #error "EdkIIGlueUefiDriverModelLib used, but no Driver Binding Protocol defined. Please define __EDKII_GLUE_DRIVER_BINDING_PROTOCOL_INSTANCE__."\r
- #endif\r
-#endif\r
-\r
-//\r
-// EdkII Glue Library Constructors:\r
-// NOTE: the constructors must be called according to dependency order\r
-//\r
-// UefiBootServicesTableLib UefiBootServicesTableLibConstructor()\r
-// DxeIoLibCpuIo IoLibConstructor()\r
-// UefiRuntimeServicesTableLib UefiRuntimeServicesTableLibConstructor()\r
-// EdkDxeRuntimeDriverLib RuntimeDriverLibConstruct()\r
-// SmmRuntimeDxeReportStatusCodeLib ReportStatusCodeLibConstruct()\r
-// DxeHobLib HobLibConstructor()\r
-// UefiDriverModelLib UefiDriverModelLibConstructor()\r
-// PeiServicesTablePointerLib PeiServicesTablePointerLibConstructor()\r
-// PeiServicesTablePointerLibMm7 PeiServicesTablePointerLibConstructor()\r
-// PeiServicesTablePointerLibKr1 PeiServicesTablePointerLibConstructor()\r
-// DxeSmbusLib SmbusLibConstructor()\r
-// DxeServicesTableLib DxeServicesTableLibConstructor()\r
-// DxeSalLib DxeSalLibConstructor()\r
-//\r
-\r
-#ifdef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__\r
-EFI_STATUS\r
-EFIAPI\r
-UefiBootServicesTableLibConstructor (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
- );\r
-#endif\r
-\r
-#ifdef __EDKII_GLUE_DXE_IO_LIB_CPU_IO__\r
-EFI_STATUS\r
-EFIAPI\r
-IoLibConstructor (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
- );\r
-#endif\r
-\r
-#ifdef __EDKII_GLUE_UEFI_RUNTIME_SERVICES_TABLE_LIB__\r
-EFI_STATUS\r
-EFIAPI\r
-UefiRuntimeServicesTableLibConstructor (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
- );\r
-#endif\r
-\r
-#ifdef __EDKII_GLUE_EDK_DXE_RUNTIME_DRIVER_LIB__\r
-EFI_STATUS\r
-EFIAPI\r
-RuntimeDriverLibConstruct (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
- );\r
-#endif\r
-\r
-#ifdef __EDKII_GLUE_SMM_RUNTIME_DXE_REPORT_STATUS_CODE_LIB__\r
-EFI_STATUS\r
-EFIAPI\r
-ReportStatusCodeLibConstruct (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
- );\r
-#endif\r
-\r
-#ifdef __EDKII_GLUE_DXE_HOB_LIB__\r
-EFI_STATUS\r
-EFIAPI\r
-HobLibConstructor (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
- );\r
-#endif\r
-\r
-#ifdef __EDKII_GLUE_UEFI_DRIVER_MODEL_LIB__\r
-EFI_STATUS\r
-EFIAPI\r
-UefiDriverModelLibConstructor (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
- );\r
-#endif\r
-\r
-#ifdef __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB__\r
-EFI_STATUS\r
-EFIAPI\r
-PeiServicesTablePointerLibConstructor (\r
- IN EFI_FFS_FILE_HEADER *FfsHeader,\r
- IN EFI_PEI_SERVICES **PeiServices\r
- );\r
-#endif\r
-\r
-#ifdef __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_MM7__\r
-EFI_STATUS\r
-EFIAPI\r
-PeiServicesTablePointerLibConstructor (\r
- IN EFI_FFS_FILE_HEADER *FfsHeader,\r
- IN EFI_PEI_SERVICES **PeiServices\r
- );\r
-#endif\r
-\r
-#ifdef __EDKII_GLUE_PEI_SERVICES_TABLE_POINTER_LIB_KR1__\r
-EFI_STATUS\r
-EFIAPI\r
-PeiServicesTablePointerLibConstructor (\r
- IN EFI_FFS_FILE_HEADER *FfsHeader,\r
- IN EFI_PEI_SERVICES **PeiServices\r
- );\r
-#endif\r
-\r
-#ifdef __EDKII_GLUE_DXE_SMBUS_LIB__\r
-EFI_STATUS\r
-EFIAPI\r
-SmbusLibConstructor (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
- );\r
-#endif\r
-\r
-#ifdef __EDKII_GLUE_DXE_SERVICES_TABLE_LIB__\r
-EFI_STATUS\r
-EFIAPI\r
-DxeServicesTableLibConstructor (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
- );\r
-#endif\r
-\r
-#ifdef __EDKII_GLUE_EDK_DXE_SAL_LIB__\r
-EFI_STATUS\r
-EFIAPI\r
-DxeSalLibConstructor (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
- );\r
-#endif\r
-\r
-//\r
-// EdkII Glue Library Destructors:\r
-// NOTE: the destructors must be called according to dependency order\r
-//\r
-// UefiDriverModelLibDestructor UefiDriverModelLibDestructor()\r
-// SmmRuntimeDxeReportStatusCodeLib ReportStatusCodeLibDestruct()\r
-// EdkDxeRuntimeDriverLib RuntimeDriverLibDeconstruct()\r
-//\r
-#ifdef __EDKII_GLUE_UEFI_DRIVER_MODEL_LIB__\r
-EFI_STATUS\r
-EFIAPI\r
-UefiDriverModelLibDestructor (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
- );\r
-#endif\r
-\r
-#ifdef __EDKII_GLUE_SMM_RUNTIME_DXE_REPORT_STATUS_CODE_LIB__\r
-EFI_STATUS\r
-EFIAPI\r
-ReportStatusCodeLibDestruct (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
- );\r
-#endif\r
-\r
-#ifdef __EDKII_GLUE_EDK_DXE_RUNTIME_DRIVER_LIB__\r
-EFI_STATUS\r
-EFIAPI\r
-RuntimeDriverLibDeconstruct (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
- );\r
-#endif\r
-\r
-#endif\r