summaryrefslogtreecommitdiff
path: root/EdkCompatibilityPkg
diff options
context:
space:
mode:
authorlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>2010-03-15 09:24:26 +0000
committerlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>2010-03-15 09:24:26 +0000
commitb56111f480f38f5fa726f4db42cafd75e584e5b3 (patch)
tree42d0f25a89e1b8b209deb992b5fc85f9f9b6e402 /EdkCompatibilityPkg
parent5209f2a9fba884c24ebe8922416b78e7ea8e7768 (diff)
downloadedk2-platforms-b56111f480f38f5fa726f4db42cafd75e584e5b3.tar.xz
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
Diffstat (limited to 'EdkCompatibilityPkg')
-rw-r--r--EdkCompatibilityPkg/EdkCompatibilityPkg.dsc2
-rw-r--r--EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/EntryPoints/EdkIIGlueDxeDriverEntryPoint.c20
-rw-r--r--EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/EntryPoints/EdkIIGlueSmmDriverEntryPoint.c39
-rw-r--r--EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Include/Common/EdkIIGlueDependencies.h56
4 files changed, 95 insertions, 22 deletions
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
@@ -226,6 +226,24 @@ Abstract:
#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__
@@ -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