From 96a2516355feae4bf10009fe28722c689af7a3e6 Mon Sep 17 00:00:00 2001 From: xli24 Date: Fri, 30 Jul 2010 05:35:19 +0000 Subject: [PATCH] Handle gEfiStatusCodeDataTypeStringGuid in status code handler drivers. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10716 6f19259b-4bc3-4df7-8a09-765794883524 --- .../StatusCodeHandler/Pei/SerialStatusCodeWorker.c | 11 +++++++++++ .../StatusCodeHandler/Pei/StatusCodeHandlerPei.h | 1 + .../StatusCodeHandler/Pei/StatusCodeHandlerPei.inf | 6 ++++-- .../RuntimeDxe/SerialStatusCodeWorker.c | 13 ++++++++++++- .../RuntimeDxe/StatusCodeHandlerRuntimeDxe.h | 3 ++- .../RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf | 4 +++- .../StatusCodeHandler/Smm/SerialStatusCodeWorker.c | 13 ++++++++++++- .../StatusCodeHandler/Smm/StatusCodeHandlerSmm.h | 1 + .../StatusCodeHandler/Smm/StatusCodeHandlerSmm.inf | 4 +++- 9 files changed, 49 insertions(+), 7 deletions(-) diff --git a/MdeModulePkg/Universal/StatusCodeHandler/Pei/SerialStatusCodeWorker.c b/MdeModulePkg/Universal/StatusCodeHandler/Pei/SerialStatusCodeWorker.c index 098347fd98..a34fa48e45 100644 --- a/MdeModulePkg/Universal/StatusCodeHandler/Pei/SerialStatusCodeWorker.c +++ b/MdeModulePkg/Universal/StatusCodeHandler/Pei/SerialStatusCodeWorker.c @@ -129,6 +129,17 @@ SerialStatusCodeReportWorker ( Value, Instance ); + } else if (CompareGuid (&Data->Type, &gEfiStatusCodeDataTypeStringGuid) && + ((EFI_STATUS_CODE_STRING_DATA *) Data)->StringType == EfiStringAscii) { + // + // EFI_STATUS_CODE_STRING_DATA + // + CharCount = AsciiSPrint ( + Buffer, + sizeof (Buffer), + "%a\n\r", + ((EFI_STATUS_CODE_STRING_DATA *) Data)->String.Ascii + ); } else { // // Code type is not defined. diff --git a/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.h b/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.h index d4ac756cd0..68991b4cea 100644 --- a/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.h +++ b/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.h @@ -30,6 +30,7 @@ #include #include #include +#include /** Convert status code value and extended data to readable ASCII string, send string to serial I/O device. diff --git a/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf b/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf index fa9de49860..8a0377e12a 100644 --- a/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf +++ b/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf @@ -46,10 +46,12 @@ ReportStatusCodeLib PrintLib DebugLib - + BaseMemoryLib + [Guids] gMemoryStatusCodeRecordGuid ## SOMETIMES_CONSUMES ## HOB - + gEfiStatusCodeDataTypeStringGuid ## CONSUMES + [Ppis] gEfiPeiRscHandlerPpiGuid ## CONSUMES diff --git a/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/SerialStatusCodeWorker.c b/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/SerialStatusCodeWorker.c index 466b5ea88b..8024f2f5df 100644 --- a/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/SerialStatusCodeWorker.c +++ b/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/SerialStatusCodeWorker.c @@ -1,7 +1,7 @@ /** @file Serial I/O status code reporting worker. - Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 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 @@ -125,6 +125,17 @@ SerialStatusCodeReportWorker ( Value, Instance ); + } else if (CompareGuid (&Data->Type, &gEfiStatusCodeDataTypeStringGuid) && + ((EFI_STATUS_CODE_STRING_DATA *) Data)->StringType == EfiStringAscii) { + // + // EFI_STATUS_CODE_STRING_DATA + // + CharCount = AsciiSPrint ( + Buffer, + sizeof (Buffer), + "%a\n\r", + ((EFI_STATUS_CODE_STRING_DATA *) Data)->String.Ascii + ); } else { // // Code type is not defined. diff --git a/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.h b/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.h index 1465dbbb3d..510c5c6ee3 100644 --- a/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.h +++ b/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.h @@ -1,7 +1,7 @@ /** @file Internal include file for Status Code Handler Driver. - Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 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 @@ -23,6 +23,7 @@ #include #include +#include #include #include #include diff --git a/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf b/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf index 7ecd6355a4..a5cede4e87 100644 --- a/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf +++ b/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf @@ -49,11 +49,13 @@ ReportStatusCodeLib DebugLib SynchronizationLib - + BaseMemoryLib + [Guids] gMemoryStatusCodeRecordGuid ## CONSUMES ## HOB gEfiEventVirtualAddressChangeGuid ## CONSUMES ## Event gEfiEventExitBootServicesGuid ## CONSUMES ## Event + gEfiStatusCodeDataTypeStringGuid ## CONSUMES [Protocols] gEfiRscHandlerProtocolGuid ## CONSUMES diff --git a/MdeModulePkg/Universal/StatusCodeHandler/Smm/SerialStatusCodeWorker.c b/MdeModulePkg/Universal/StatusCodeHandler/Smm/SerialStatusCodeWorker.c index 9c6a5b153d..408511ef97 100644 --- a/MdeModulePkg/Universal/StatusCodeHandler/Smm/SerialStatusCodeWorker.c +++ b/MdeModulePkg/Universal/StatusCodeHandler/Smm/SerialStatusCodeWorker.c @@ -1,7 +1,7 @@ /** @file Serial I/O status code reporting worker. - Copyright (c) 2009, Intel Corporation. All rights reserved.
+ Copyright (c) 2009 - 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 @@ -125,6 +125,17 @@ SerialStatusCodeReportWorker ( Value, Instance ); + } else if (CompareGuid (&Data->Type, &gEfiStatusCodeDataTypeStringGuid) && + ((EFI_STATUS_CODE_STRING_DATA *) Data)->StringType == EfiStringAscii) { + // + // EFI_STATUS_CODE_STRING_DATA + // + CharCount = AsciiSPrint ( + Buffer, + sizeof (Buffer), + "%a\n\r", + ((EFI_STATUS_CODE_STRING_DATA *) Data)->String.Ascii + ); } else { // // Code type is not defined. diff --git a/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.h b/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.h index bf364c80dd..0dd0060dab 100644 --- a/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.h +++ b/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.h @@ -30,6 +30,7 @@ #include #include #include +#include // // Runtime memory status code worker definition diff --git a/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.inf b/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.inf index 69f6099e55..e56106a81a 100644 --- a/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.inf +++ b/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.inf @@ -48,9 +48,11 @@ DebugLib SynchronizationLib MemoryAllocationLib - + BaseMemoryLib + [Guids] gMemoryStatusCodeRecordGuid ## CONSUMES ## HOB + gEfiStatusCodeDataTypeStringGuid ## CONSUMES [Protocols] gEfiSmmRscHandlerProtocolGuid ## CONSUMES -- 2.39.2