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
This commit is contained in:
lgao4 2010-03-15 09:24:26 +00:00
parent 5209f2a9fb
commit b56111f480
4 changed files with 95 additions and 22 deletions

View File

@ -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

View File

@ -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);

View File

@ -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;

View File

@ -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