From: lgao4 Date: Mon, 15 Mar 2010 09:24:26 +0000 (+0000) Subject: Add GlueLib SmmRuntimeDxeReportStatusCodeLib into EdkCompatibilityPkg , which provide... X-Git-Tag: edk2-stable201903~16093 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=b56111f480f38f5fa726f4db42cafd75e584e5b3;p=mirror_edk2.git Add GlueLib SmmRuntimeDxeReportStatusCodeLib into EdkCompatibilityPkg , which provides the security status code library for EDK runtime and smm driver. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10245 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/EdkCompatibilityPkg/EdkCompatibilityPkg.dsc b/EdkCompatibilityPkg/EdkCompatibilityPkg.dsc index 73604ea53b..efd9f6a146 100644 --- a/EdkCompatibilityPkg/EdkCompatibilityPkg.dsc +++ b/EdkCompatibilityPkg/EdkCompatibilityPkg.dsc @@ -203,6 +203,7 @@ define GCC_MACRO = -DEFI_SPECIFICATION_VERSION=0x00020000 -DPI_S EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/DxeMemoryAllocationLib/DxeMemoryAllocationLib.inf EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf + EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/SmmRuntimeDxeReportStatusCodeLib/SmmRuntimeDxeReportStatusCodeLib.inf EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/DxeServicesTableLib/DxeServicesTableLib.inf EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/DxeSmbusLib/DxeSmbusLib.inf EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/EdkDxeRuntimeDriverLib/EdkDxeRuntimeDriverLib.inf @@ -365,6 +366,7 @@ define GCC_MACRO = -DEFI_SPECIFICATION_VERSION=0x00020000 -DPI_S EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/DxeHobLib/DxeHobLib.inf EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf + EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/SmmRuntimeDxeReportStatusCodeLib/SmmRuntimeDxeReportStatusCodeLib.inf EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/HiiLib/HiiLib.inf EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/PeiServicesTablePointerLibKr1/PeiServicesTablePointerLibKr1.inf EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/UefiDevicePathLib/UefiDevicePathLib.inf diff --git a/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/EntryPoints/EdkIIGlueDxeDriverEntryPoint.c b/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/EntryPoints/EdkIIGlueDxeDriverEntryPoint.c index 28b8b6e29d..7991de6e73 100644 --- a/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/EntryPoints/EdkIIGlueDxeDriverEntryPoint.c +++ b/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/EntryPoints/EdkIIGlueDxeDriverEntryPoint.c @@ -1,6 +1,6 @@ /*++ -Copyright (c) 2004 - 2007, Intel Corporation +Copyright (c) 2004 - 2010, 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 @@ -239,7 +239,8 @@ ProcessLibraryConstructorList ( || defined(__EDKII_GLUE_DXE_SMBUS_LIB__) \ || defined(__EDKII_GLUE_UEFI_RUNTIME_SERVICES_TABLE_LIB__) \ || defined(__EDKII_GLUE_EDK_DXE_SAL_LIB__) \ - || defined(__EDKII_GLUE_DXE_IO_LIB_CPU_IO__) + || defined(__EDKII_GLUE_DXE_IO_LIB_CPU_IO__) \ + || defined(__EDKII_GLUE_SMM_RUNTIME_DXE_REPORT_STATUS_CODE_LIB__) EFI_STATUS Status; #endif @@ -256,6 +257,7 @@ ProcessLibraryConstructorList ( // DxeSmbusLib SmbusLibConstructor() // DxeServicesTableLib DxeServicesTableLibConstructor() // UefiRuntimeServicesTableLib UefiRuntimeServicesTableLibConstructor() +// SmmRuntimeDxeReportStatusCodeLib ReportStatusCodeLibConstruct() // #ifdef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__ @@ -293,6 +295,11 @@ ProcessLibraryConstructorList ( ASSERT_EFI_ERROR (Status); #endif +#ifdef __EDKII_GLUE_SMM_RUNTIME_DXE_REPORT_STATUS_CODE_LIB__ + Status = ReportStatusCodeLibConstruct (ImageHandle, SystemTable); + ASSERT_EFI_ERROR (Status); +#endif + #ifdef __EDKII_GLUE_DXE_HOB_LIB__ Status = HobLibConstructor (ImageHandle, SystemTable); ASSERT_EFI_ERROR (Status); @@ -315,7 +322,9 @@ ProcessLibraryDestructorList ( IN EFI_SYSTEM_TABLE *SystemTable ) { -#if defined (__EDKII_GLUE_UEFI_DRIVER_MODEL_LIB__) || defined (__EDKII_GLUE_EDK_DXE_RUNTIME_DRIVER_LIB__) +#if defined (__EDKII_GLUE_UEFI_DRIVER_MODEL_LIB__) \ + || defined (__EDKII_GLUE_EDK_DXE_RUNTIME_DRIVER_LIB__) \ + || defined (__EDKII_GLUE_SMM_RUNTIME_DXE_REPORT_STATUS_CODE_LIB__) EFI_STATUS Status; #endif @@ -327,6 +336,11 @@ ProcessLibraryDestructorList ( ASSERT_EFI_ERROR (Status); #endif +#ifdef __EDKII_GLUE_SMM_RUNTIME_DXE_REPORT_STATUS_CODE_LIB__ + Status = ReportStatusCodeLibDestruct (ImageHandle, SystemTable); + ASSERT_EFI_ERROR (Status); +#endif + #ifdef __EDKII_GLUE_EDK_DXE_RUNTIME_DRIVER_LIB__ Status = RuntimeDriverLibDeconstruct (ImageHandle, SystemTable); ASSERT_EFI_ERROR (Status); diff --git a/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/EntryPoints/EdkIIGlueSmmDriverEntryPoint.c b/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/EntryPoints/EdkIIGlueSmmDriverEntryPoint.c index 6dd128af8c..c359bbb627 100644 --- a/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/EntryPoints/EdkIIGlueSmmDriverEntryPoint.c +++ b/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/EntryPoints/EdkIIGlueSmmDriverEntryPoint.c @@ -1,6 +1,6 @@ /*++ -Copyright (c) 2004 - 2009, Intel Corporation +Copyright (c) 2004 - 2010, 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 @@ -67,27 +67,28 @@ ProcessLibraryConstructorList ( // #if defined(__EDKII_GLUE_DXE_HOB_LIB__) \ || defined(__EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__) \ - || defined(__EDKII_GLUE_UEFI_DRIVER_MODEL_LIB__) \ - || defined(__EDKII_GLUE_EDK_DXE_RUNTIME_DRIVER_LIB__) \ || defined(__EDKII_GLUE_DXE_SERVICES_TABLE_LIB__) \ || defined(__EDKII_GLUE_DXE_SMBUS_LIB__) \ || defined(__EDKII_GLUE_UEFI_RUNTIME_SERVICES_TABLE_LIB__) \ - || defined(__EDKII_GLUE_DXE_IO_LIB_CPU_IO__) + || defined(__EDKII_GLUE_DXE_IO_LIB_CPU_IO__) \ + || defined(__EDKII_GLUE_SMM_RUNTIME_DXE_REPORT_STATUS_CODE_LIB__) EFI_STATUS Status; #endif // // EdkII Glue Library Constructors: // NOTE: the constructors must be called according to dependency order +// NOTE: compared with EdkIIGlueDxeDriverEntryPoint.c, the EdkDxeRuntimeDriverLib +// and the UefiDriverModelLib are not applicable for SMM Drivers so not listed +// here // // UefiBootServicesTableLib UefiBootServicesTableLibConstructor() // DxeIoLibCpuIo IoLibConstructor -// EdkDxeRuntimeDriverLib RuntimeDriverLibConstruct() // DxeHobLib HobLibConstructor() -// UefiDriverModelLib UefiDriverModelLibConstructor() // DxeSmbusLib SmbusLibConstructor() // DxeServicesTableLib DxeServicesTableLibConstructor() // UefiRuntimeServicesTableLib UefiRuntimeServicesTableLibConstructor() +// SmmRuntimeDxeReportStatusCodeLib ReportStatusCodeLibConstruct() // check here: check lib usage #ifdef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__ Status = UefiBootServicesTableLibConstructor (ImageHandle, SystemTable); @@ -99,26 +100,21 @@ ProcessLibraryConstructorList ( ASSERT_EFI_ERROR (Status); #endif -#ifdef __EDKII_GLUE_EDK_DXE_RUNTIME_DRIVER_LIB__ - Status = RuntimeDriverLibConstruct (ImageHandle, SystemTable); - ASSERT_EFI_ERROR (Status); -#endif - #ifdef __EDKII_GLUE_UEFI_RUNTIME_SERVICES_TABLE_LIB__ Status = UefiRuntimeServicesTableLibConstructor (ImageHandle, SystemTable); ASSERT_EFI_ERROR (Status); #endif -#ifdef __EDKII_GLUE_UEFI_DRIVER_MODEL_LIB__ - Status = UefiDriverModelLibConstructor (ImageHandle, SystemTable); - ASSERT_EFI_ERROR (Status); -#endif - #ifdef __EDKII_GLUE_DXE_SERVICES_TABLE_LIB__ Status = DxeServicesTableLibConstructor (ImageHandle, SystemTable); ASSERT_EFI_ERROR (Status); #endif +#ifdef __EDKII_GLUE_SMM_RUNTIME_DXE_REPORT_STATUS_CODE_LIB__ + Status = ReportStatusCodeLibConstruct (ImageHandle, SystemTable); + ASSERT_EFI_ERROR (Status); +#endif + #ifdef __EDKII_GLUE_DXE_HOB_LIB__ Status = HobLibConstructor (ImageHandle, SystemTable); ASSERT_EFI_ERROR (Status); @@ -140,6 +136,17 @@ ProcessLibraryDestructorList ( IN EFI_SYSTEM_TABLE *SystemTable ) { +#if defined (__EDKII_GLUE_SMM_RUNTIME_DXE_REPORT_STATUS_CODE_LIB__) + EFI_STATUS Status; +#endif + +// +// NOTE: the destructors must be called according to dependency order +// +#ifdef __EDKII_GLUE_SMM_RUNTIME_DXE_REPORT_STATUS_CODE_LIB__ + Status = ReportStatusCodeLibDestruct (ImageHandle, SystemTable); + ASSERT_EFI_ERROR (Status); +#endif } EFI_BOOT_SERVICES *mBS; diff --git a/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Include/Common/EdkIIGlueDependencies.h b/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Include/Common/EdkIIGlueDependencies.h index c28debd6f1..8f46915939 100644 --- a/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Include/Common/EdkIIGlueDependencies.h +++ b/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Include/Common/EdkIIGlueDependencies.h @@ -1,6 +1,6 @@ /*++ -Copyright (c) 2004 - 2006, Intel Corporation +Copyright (c) 2004 - 2010, 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 @@ -225,6 +225,24 @@ Abstract: #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 // @@ -645,6 +663,14 @@ Abstract: #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 @@ -661,8 +687,12 @@ Abstract: // Some instances must be supplied // #ifdef __EDKII_GLUE_PEI_DXE_DEBUG_LIB_REPORT_STATUS_CODE__ - #if !defined(__EDKII_GLUE_DXE_REPORT_STATUS_CODE_LIB__) && !defined(__EDKII_GLUE_PEI_REPORT_STATUS_CODE_LIB__) - #error You use EdkIIGluePeiDxeDebugLibReportStatusCode, so either EdkIIGlueDxeReportStatusCodeLib or EdkIIGluePeiReportStatusCodeLib must be supplied + #if !defined(__EDKII_GLUE_DXE_REPORT_STATUS_CODE_LIB__) \ + && !defined(__EDKII_GLUE_PEI_REPORT_STATUS_CODE_LIB__) \ + && !defined(__EDKII_GLUE_SMM_RUNTIME_DXE_REPORT_STATUS_CODE_LIB__) + #error You use EdkIIGluePeiDxeDebugLibReportStatusCode, \ + so either EdkIIGlueDxeReportStatusCodeLib, EdkIIGluePeiReportStatusCodeLib, \ + or EdkIIGlueSmmRuntimeDxeReportStatusCodeLib must be supplied #endif #endif @@ -689,6 +719,7 @@ Abstract: // DxeIoLibCpuIo IoLibConstructor() // UefiRuntimeServicesTableLib UefiRuntimeServicesTableLibConstructor() // EdkDxeRuntimeDriverLib RuntimeDriverLibConstruct() +// SmmRuntimeDxeReportStatusCodeLib ReportStatusCodeLibConstruct() // DxeHobLib HobLibConstructor() // UefiDriverModelLib UefiDriverModelLibConstructor() // PeiServicesTablePointerLib PeiServicesTablePointerLibConstructor() @@ -735,6 +766,15 @@ RuntimeDriverLibConstruct ( ); #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 EFIAPI @@ -812,6 +852,7 @@ DxeSalLibConstructor ( // NOTE: the destructors must be called according to dependency order // // UefiDriverModelLibDestructor UefiDriverModelLibDestructor() +// SmmRuntimeDxeReportStatusCodeLib ReportStatusCodeLibDestruct() // EdkDxeRuntimeDriverLib RuntimeDriverLibDeconstruct() // #ifdef __EDKII_GLUE_UEFI_DRIVER_MODEL_LIB__ @@ -823,6 +864,15 @@ UefiDriverModelLibDestructor ( ); #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 EFIAPI