From 35b309d6a956f9bc5c50b8b59ce578f3925c90d7 Mon Sep 17 00:00:00 2001 From: qhuang8 Date: Mon, 23 Oct 2006 01:46:32 +0000 Subject: [PATCH] Make NT32 SecMain not depend on ReportStatusCodeLib git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1818 6f19259b-4bc3-4df7-8a09-765794883524 --- EdkNt32Pkg/Nt32.fpd | 9 ----- EdkNt32Pkg/Sec/SecMain.c | 63 ++++++++++++++++++++++++++++++++ EdkNt32Pkg/Sec/SecMain.msa | 3 -- EdkNt32Pkg/Sec/SecMain_build.xml | 8 ---- 4 files changed, 63 insertions(+), 20 deletions(-) diff --git a/EdkNt32Pkg/Nt32.fpd b/EdkNt32Pkg/Nt32.fpd index cb0e2fbac1..e321c43cde 100644 --- a/EdkNt32Pkg/Nt32.fpd +++ b/EdkNt32Pkg/Nt32.fpd @@ -132,7 +132,6 @@ - @@ -192,14 +191,6 @@ 4 10000000 - - PcdReportStatusCodePropertyMask - 0x00000007 - gEfiMdePkgTokenSpaceGuid - UINT8 - 1 - 0x06 - PcdDebugPropertyMask 0x00000005 diff --git a/EdkNt32Pkg/Sec/SecMain.c b/EdkNt32Pkg/Sec/SecMain.c index 3c6f5b0430..167ad50011 100644 --- a/EdkNt32Pkg/Sec/SecMain.c +++ b/EdkNt32Pkg/Sec/SecMain.c @@ -422,6 +422,69 @@ Returns: #define BYTES_PER_RECORD 512 +/** + Extracts ASSERT() information from a status code structure. + + Converts the status code specified by CodeType, Value, and Data to the ASSERT() + arguments specified by Filename, Description, and LineNumber. If CodeType is + an EFI_ERROR_CODE, and CodeType has a severity of EFI_ERROR_UNRECOVERED, and + Value has an operation mask of EFI_SW_EC_ILLEGAL_SOFTWARE_STATE, extract + Filename, Description, and LineNumber from the optional data area of the + status code buffer specified by Data. The optional data area of Data contains + a Null-terminated ASCII string for the FileName, followed by a Null-terminated + ASCII string for the Description, followed by a 32-bit LineNumber. If the + ASSERT() information could be extracted from Data, then return TRUE. + Otherwise, FALSE is returned. + + If Data is NULL, then ASSERT(). + If Filename is NULL, then ASSERT(). + If Description is NULL, then ASSERT(). + If LineNumber is NULL, then ASSERT(). + + @param CodeType The type of status code being converted. + @param Value The status code value being converted. + @param Data Pointer to status code data buffer. + @param Filename Pointer to the source file name that generated the ASSERT(). + @param Description Pointer to the description of the ASSERT(). + @param LineNumber Pointer to source line number that generated the ASSERT(). + + @retval TRUE The status code specified by CodeType, Value, and Data was + converted ASSERT() arguments specified by Filename, Description, + and LineNumber. + @retval FALSE The status code specified by CodeType, Value, and Data could + not be converted to ASSERT() arguments. + +**/ +STATIC +BOOLEAN +ReportStatusCodeExtractAssertInfo ( + IN EFI_STATUS_CODE_TYPE CodeType, + IN EFI_STATUS_CODE_VALUE Value, + IN CONST EFI_STATUS_CODE_DATA *Data, + OUT CHAR8 **Filename, + OUT CHAR8 **Description, + OUT UINT32 *LineNumber + ) +{ + EFI_DEBUG_ASSERT_DATA *AssertData; + + ASSERT (Data != NULL); + ASSERT (Filename != NULL); + ASSERT (Description != NULL); + ASSERT (LineNumber != NULL); + + if (((CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_ERROR_CODE) && + ((CodeType & EFI_STATUS_CODE_SEVERITY_MASK) == EFI_ERROR_UNRECOVERED) && + ((Value & EFI_STATUS_CODE_OPERATION_MASK) == EFI_SW_EC_ILLEGAL_SOFTWARE_STATE)) { + AssertData = (EFI_DEBUG_ASSERT_DATA *)(Data + 1); + *Filename = (CHAR8 *)(AssertData + 1); + *Description = *Filename + AsciiStrLen (*Filename) + 1; + *LineNumber = AssertData->LineNumber; + return TRUE; + } + return FALSE; +} + EFI_STATUS EFIAPI SecPeiReportStatusCode ( diff --git a/EdkNt32Pkg/Sec/SecMain.msa b/EdkNt32Pkg/Sec/SecMain.msa index af6a6a615c..f8e8f2d6c8 100644 --- a/EdkNt32Pkg/Sec/SecMain.msa +++ b/EdkNt32Pkg/Sec/SecMain.msa @@ -34,9 +34,6 @@ PrintLib - - ReportStatusCodeLib - PcdLib diff --git a/EdkNt32Pkg/Sec/SecMain_build.xml b/EdkNt32Pkg/Sec/SecMain_build.xml index 5a27f5c1b9..fc26a10779 100644 --- a/EdkNt32Pkg/Sec/SecMain_build.xml +++ b/EdkNt32Pkg/Sec/SecMain_build.xml @@ -56,14 +56,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - - - - - - - - -- 2.39.2