From 85eb579424c2abc159576d21a7ca1a2b0633cd75 Mon Sep 17 00:00:00 2001 From: xli24 Date: Mon, 27 Apr 2009 09:09:45 +0000 Subject: Update directory/file names for status code PEIM. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8187 6f19259b-4bc3-4df7-8a09-765794883524 --- .../StatusCode/Pei/MemoryStausCodeWorker.c | 2 +- .../Universal/StatusCode/Pei/PeiStatusCode.c | 146 -------------------- .../Universal/StatusCode/Pei/PeiStatusCode.h | 148 --------------------- .../Universal/StatusCode/Pei/PeiStatusCode.inf | 74 ----------- .../StatusCode/Pei/SerialStatusCodeWorker.c | 2 +- .../Universal/StatusCode/Pei/StatusCodePei.c | 146 ++++++++++++++++++++ .../Universal/StatusCode/Pei/StatusCodePei.h | 148 +++++++++++++++++++++ .../Universal/StatusCode/Pei/StatusCodePei.inf | 74 +++++++++++ 8 files changed, 370 insertions(+), 370 deletions(-) delete mode 100644 IntelFrameworkModulePkg/Universal/StatusCode/Pei/PeiStatusCode.c delete mode 100644 IntelFrameworkModulePkg/Universal/StatusCode/Pei/PeiStatusCode.h delete mode 100644 IntelFrameworkModulePkg/Universal/StatusCode/Pei/PeiStatusCode.inf create mode 100644 IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.c create mode 100644 IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.h create mode 100644 IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf (limited to 'IntelFrameworkModulePkg') diff --git a/IntelFrameworkModulePkg/Universal/StatusCode/Pei/MemoryStausCodeWorker.c b/IntelFrameworkModulePkg/Universal/StatusCode/Pei/MemoryStausCodeWorker.c index 809b62f..446f70f 100644 --- a/IntelFrameworkModulePkg/Universal/StatusCode/Pei/MemoryStausCodeWorker.c +++ b/IntelFrameworkModulePkg/Universal/StatusCode/Pei/MemoryStausCodeWorker.c @@ -12,7 +12,7 @@ **/ -#include "PeiStatusCode.h" +#include "StatusCodePei.h" /** Worker function to create one memory status code GUID'ed HOB, diff --git a/IntelFrameworkModulePkg/Universal/StatusCode/Pei/PeiStatusCode.c b/IntelFrameworkModulePkg/Universal/StatusCode/Pei/PeiStatusCode.c deleted file mode 100644 index 726ae5b..0000000 --- a/IntelFrameworkModulePkg/Universal/StatusCode/Pei/PeiStatusCode.c +++ /dev/null @@ -1,146 +0,0 @@ -/** @file - Status code PEIM which produces Status Code PPI. - - Copyright (c) 2006 - 2009, 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 - http://opensource.org/licenses/bsd-license.php - - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -**/ - -#include "PeiStatusCode.h" - -EFI_PEI_PROGRESS_CODE_PPI mStatusCodePpi = { - ReportDispatcher - }; - -EFI_PEI_PPI_DESCRIPTOR mStatusCodePpiDescriptor = { - EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST, - &gEfiPeiStatusCodePpiGuid, - &mStatusCodePpi - }; - -/** - Publishes an interface that allows PEIMs to report status codes. - - This function implements EFI_PEI_PROGRESS_CODE_PPI.ReportStatusCode(). - It publishes an interface that allows PEIMs to report status codes. - - @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. - @param CodeType Indicates the type of status code being reported. - @param Value Describes the current status of a hardware or - software entity. This includes information about the class and - subclass that is used to classify the entity as well as an operation. - For progress codes, the operation is the current activity. - For error codes, it is the exception.For debug codes,it is not defined at this time. - @param Instance The enumeration of a hardware or software entity within - the system. A system may contain multiple entities that match a class/subclass - pairing. The instance differentiates between them. An instance of 0 indicates - that instance information is unavailable, not meaningful, or not relevant. - Valid instance numbers start with 1. - @param CallerId This optional parameter may be used to identify the caller. - This parameter allows the status code driver to apply different rules to - different callers. - @param Data This optional parameter may be used to pass additional data. - - @retval EFI_SUCCESS The function completed successfully. - -**/ -EFI_STATUS -EFIAPI -ReportDispatcher ( - IN CONST EFI_PEI_SERVICES **PeiServices, - IN EFI_STATUS_CODE_TYPE CodeType, - IN EFI_STATUS_CODE_VALUE Value, - IN UINT32 Instance, - IN CONST EFI_GUID *CallerId OPTIONAL, - IN CONST EFI_STATUS_CODE_DATA *Data OPTIONAL - ) -{ - if (FeaturePcdGet (PcdStatusCodeUseSerial)) { - SerialStatusCodeReportWorker ( - CodeType, - Value, - Instance, - CallerId, - Data - ); - } - if (FeaturePcdGet (PcdStatusCodeUseMemory)) { - MemoryStatusCodeReportWorker ( - CodeType, - Value, - Instance - ); - } - if (FeaturePcdGet (PcdStatusCodeUseOEM)) { - // - // Call OEM hook status code library API to report status code to OEM device - // - OemHookStatusCodeReport ( - CodeType, - Value, - Instance, - (EFI_GUID *)CallerId, - (EFI_STATUS_CODE_DATA *)Data - ); - } - - return EFI_SUCCESS; -} - -/** - Entry point of Status Code PEIM. - - This function is the entry point of this Status Code PEIM. - It initializes supported status code devices according to PCD settings, - and installs Status Code PPI. - - @param FileHandle Handle of the file being invoked. - @param PeiServices Describes the list of possible PEI Services. - - @retval EFI_SUCESS The entry point of DXE IPL PEIM executes successfully. - -**/ -EFI_STATUS -EFIAPI -PeiStatusCodeDriverEntry ( - IN EFI_PEI_FILE_HANDLE FileHandle, - IN CONST EFI_PEI_SERVICES **PeiServices - ) -{ - EFI_STATUS Status; - - // - // Dispatch initialization request to sub-statuscode-devices. - // If enable UseSerial, then initialize serial port. - // if enable UseMemory, then initialize memory status code worker. - // if enable UseOEM, then initialize Oem status code. - // - if (FeaturePcdGet (PcdStatusCodeUseSerial)) { - Status = SerialPortInitialize(); - ASSERT_EFI_ERROR (Status); - } - if (FeaturePcdGet (PcdStatusCodeUseMemory)) { - Status = MemoryStatusCodeInitializeWorker (); - ASSERT_EFI_ERROR (Status); - } - if (FeaturePcdGet (PcdStatusCodeUseOEM)) { - Status = OemHookStatusCodeInitialize (); - ASSERT_EFI_ERROR (Status); - } - - // - // Install Status Code PPI. - // It serves the PEI Service ReportStatusCode. - // - Status = PeiServicesInstallPpi (&mStatusCodePpiDescriptor); - ASSERT_EFI_ERROR (Status); - - return EFI_SUCCESS; -} - diff --git a/IntelFrameworkModulePkg/Universal/StatusCode/Pei/PeiStatusCode.h b/IntelFrameworkModulePkg/Universal/StatusCode/Pei/PeiStatusCode.h deleted file mode 100644 index a609393..0000000 --- a/IntelFrameworkModulePkg/Universal/StatusCode/Pei/PeiStatusCode.h +++ /dev/null @@ -1,148 +0,0 @@ -/** @file - Internal include file for Status Code PEIM. - - Copyright (c) 2006 - 2009, 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 - http://opensource.org/licenses/bsd-license.php - - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -**/ - -#ifndef __PEI_STATUS_CODE_H__ -#define __PEI_STATUS_CODE_H__ - - - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/** - Convert status code value and extended data to readable ASCII string, send string to serial I/O device. - - @param CodeType Indicates the type of status code being reported. - @param Value Describes the current status of a hardware or - software entity. This includes information about the class and - subclass that is used to classify the entity as well as an operation. - For progress codes, the operation is the current activity. - For error codes, it is the exception.For debug codes,it is not defined at this time. - @param Instance The enumeration of a hardware or software entity within - the system. A system may contain multiple entities that match a class/subclass - pairing. The instance differentiates between them. An instance of 0 indicates - that instance information is unavailable, not meaningful, or not relevant. - Valid instance numbers start with 1. - @param CallerId This optional parameter may be used to identify the caller. - This parameter allows the status code driver to apply different rules to - different callers. - @param Data This optional parameter may be used to pass additional data. - - @retval EFI_SUCCESS Status code reported to serial I/O successfully. - -**/ -EFI_STATUS -SerialStatusCodeReportWorker ( - IN EFI_STATUS_CODE_TYPE CodeType, - IN EFI_STATUS_CODE_VALUE Value, - IN UINT32 Instance, - IN CONST EFI_GUID *CallerId, - IN CONST EFI_STATUS_CODE_DATA *Data OPTIONAL - ); - - -/** - Create the first memory status code GUID'ed HOB as initialization for memory status code worker. - - @retval EFI_SUCCESS The GUID'ed HOB is created successfully. - -**/ -EFI_STATUS -MemoryStatusCodeInitializeWorker ( - VOID - ); - -/** - Report status code into GUID'ed HOB. - - This function reports status code into GUID'ed HOB. If not all packets are full, then - write status code into available entry. Otherwise, create a new packet for it. - - @param CodeType Indicates the type of status code being reported. - @param Value Describes the current status of a hardware or - software entity. This includes information about the class and - subclass that is used to classify the entity as well as an operation. - For progress codes, the operation is the current activity. - For error codes, it is the exception.For debug codes,it is not defined at this time. - @param Instance The enumeration of a hardware or software entity within - the system. A system may contain multiple entities that match a class/subclass - pairing. The instance differentiates between them. An instance of 0 indicates - that instance information is unavailable, not meaningful, or not relevant. - Valid instance numbers start with 1. - - @retval EFI_SUCCESS The function always return EFI_SUCCESS. - -**/ -EFI_STATUS -MemoryStatusCodeReportWorker ( - IN EFI_STATUS_CODE_TYPE CodeType, - IN EFI_STATUS_CODE_VALUE Value, - IN UINT32 Instance - ); - -/** - Publishes an interface that allows PEIMs to report status codes. - - This function implements EFI_PEI_PROGRESS_CODE_PPI.ReportStatusCode(). - It publishes an interface that allows PEIMs to report status codes. - - @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. - @param CodeType Indicates the type of status code being reported. - @param Value Describes the current status of a hardware or - software entity. This includes information about the class and - subclass that is used to classify the entity as well as an operation. - For progress codes, the operation is the current activity. - For error codes, it is the exception.For debug codes,it is not defined at this time. - @param Instance The enumeration of a hardware or software entity within - the system. A system may contain multiple entities that match a class/subclass - pairing. The instance differentiates between them. An instance of 0 indicates - that instance information is unavailable, not meaningful, or not relevant. - Valid instance numbers start with 1. - @param CallerId This optional parameter may be used to identify the caller. - This parameter allows the status code driver to apply different rules to - different callers. - @param Data This optional parameter may be used to pass additional data. - - @retval EFI_SUCCESS The function completed successfully. - -**/ -EFI_STATUS -EFIAPI -ReportDispatcher ( - IN CONST EFI_PEI_SERVICES **PeiServices, - IN EFI_STATUS_CODE_TYPE CodeType, - IN EFI_STATUS_CODE_VALUE Value, - IN UINT32 Instance, - IN CONST EFI_GUID *CallerId OPTIONAL, - IN CONST EFI_STATUS_CODE_DATA *Data OPTIONAL - ); - -#endif - - diff --git a/IntelFrameworkModulePkg/Universal/StatusCode/Pei/PeiStatusCode.inf b/IntelFrameworkModulePkg/Universal/StatusCode/Pei/PeiStatusCode.inf deleted file mode 100644 index 15ab9dc..0000000 --- a/IntelFrameworkModulePkg/Universal/StatusCode/Pei/PeiStatusCode.inf +++ /dev/null @@ -1,74 +0,0 @@ -#/** @file -# Status code PEIM which produces Status Code PPI. -# -# Copyright (c) 2006 - 2009, 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 -# http://opensource.org/licenses/bsd-license.php -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -# -# -#**/ - -[Defines] - INF_VERSION = 0x00010005 - BASE_NAME = StatusCodePei - FILE_GUID = 1EC0F53A-FDE0-4576-8F25-7A1A410F58EB - MODULE_TYPE = PEIM - VERSION_STRING = 1.0 - EFI_SPECIFICATION_VERSION = 0x00020000 - ENTRY_POINT = PeiStatusCodeDriverEntry - -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = IA32 X64 IPF EBC -# - -[Sources.common] - PeiStatusCode.c - MemoryStausCodeWorker.c - SerialStatusCodeWorker.c - PeiStatusCode.h - - -[Packages] - MdePkg/MdePkg.dec - IntelFrameworkPkg/IntelFrameworkPkg.dec - IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec - -[LibraryClasses] - PeimEntryPoint - OemHookStatusCodeLib - PeiServicesLib - PcdLib - HobLib - SerialPortLib - ReportStatusCodeLib - PrintLib - DebugLib - BaseLib - - -[Guids] - gMemoryStatusCodeRecordGuid # SOMETIMES_CONSUMED - - -[Ppis] - gEfiPeiStatusCodePpiGuid # PPI ALWAYS_CONSUMED - - -[FeaturePcd.common] - gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseOEM - gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory - gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial - - -[Pcd.common] - gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize - -[Depex] - TRUE diff --git a/IntelFrameworkModulePkg/Universal/StatusCode/Pei/SerialStatusCodeWorker.c b/IntelFrameworkModulePkg/Universal/StatusCode/Pei/SerialStatusCodeWorker.c index 7a618d9..1784f4e 100644 --- a/IntelFrameworkModulePkg/Universal/StatusCode/Pei/SerialStatusCodeWorker.c +++ b/IntelFrameworkModulePkg/Universal/StatusCode/Pei/SerialStatusCodeWorker.c @@ -11,7 +11,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. **/ -#include "PeiStatusCode.h" +#include "StatusCodePei.h" /** Convert status code value and extended data to readable ASCII string, send string to serial I/O device. diff --git a/IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.c b/IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.c new file mode 100644 index 0000000..caedbbf --- /dev/null +++ b/IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.c @@ -0,0 +1,146 @@ +/** @file + Status code PEIM which produces Status Code PPI. + + Copyright (c) 2006 - 2009, 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 + http://opensource.org/licenses/bsd-license.php + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#include "StatusCodePei.h" + +EFI_PEI_PROGRESS_CODE_PPI mStatusCodePpi = { + ReportDispatcher + }; + +EFI_PEI_PPI_DESCRIPTOR mStatusCodePpiDescriptor = { + EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST, + &gEfiPeiStatusCodePpiGuid, + &mStatusCodePpi + }; + +/** + Publishes an interface that allows PEIMs to report status codes. + + This function implements EFI_PEI_PROGRESS_CODE_PPI.ReportStatusCode(). + It publishes an interface that allows PEIMs to report status codes. + + @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. + @param CodeType Indicates the type of status code being reported. + @param Value Describes the current status of a hardware or + software entity. This includes information about the class and + subclass that is used to classify the entity as well as an operation. + For progress codes, the operation is the current activity. + For error codes, it is the exception.For debug codes,it is not defined at this time. + @param Instance The enumeration of a hardware or software entity within + the system. A system may contain multiple entities that match a class/subclass + pairing. The instance differentiates between them. An instance of 0 indicates + that instance information is unavailable, not meaningful, or not relevant. + Valid instance numbers start with 1. + @param CallerId This optional parameter may be used to identify the caller. + This parameter allows the status code driver to apply different rules to + different callers. + @param Data This optional parameter may be used to pass additional data. + + @retval EFI_SUCCESS The function completed successfully. + +**/ +EFI_STATUS +EFIAPI +ReportDispatcher ( + IN CONST EFI_PEI_SERVICES **PeiServices, + IN EFI_STATUS_CODE_TYPE CodeType, + IN EFI_STATUS_CODE_VALUE Value, + IN UINT32 Instance, + IN CONST EFI_GUID *CallerId OPTIONAL, + IN CONST EFI_STATUS_CODE_DATA *Data OPTIONAL + ) +{ + if (FeaturePcdGet (PcdStatusCodeUseSerial)) { + SerialStatusCodeReportWorker ( + CodeType, + Value, + Instance, + CallerId, + Data + ); + } + if (FeaturePcdGet (PcdStatusCodeUseMemory)) { + MemoryStatusCodeReportWorker ( + CodeType, + Value, + Instance + ); + } + if (FeaturePcdGet (PcdStatusCodeUseOEM)) { + // + // Call OEM hook status code library API to report status code to OEM device + // + OemHookStatusCodeReport ( + CodeType, + Value, + Instance, + (EFI_GUID *)CallerId, + (EFI_STATUS_CODE_DATA *)Data + ); + } + + return EFI_SUCCESS; +} + +/** + Entry point of Status Code PEIM. + + This function is the entry point of this Status Code PEIM. + It initializes supported status code devices according to PCD settings, + and installs Status Code PPI. + + @param FileHandle Handle of the file being invoked. + @param PeiServices Describes the list of possible PEI Services. + + @retval EFI_SUCESS The entry point of DXE IPL PEIM executes successfully. + +**/ +EFI_STATUS +EFIAPI +PeiStatusCodeDriverEntry ( + IN EFI_PEI_FILE_HANDLE FileHandle, + IN CONST EFI_PEI_SERVICES **PeiServices + ) +{ + EFI_STATUS Status; + + // + // Dispatch initialization request to sub-statuscode-devices. + // If enable UseSerial, then initialize serial port. + // if enable UseMemory, then initialize memory status code worker. + // if enable UseOEM, then initialize Oem status code. + // + if (FeaturePcdGet (PcdStatusCodeUseSerial)) { + Status = SerialPortInitialize(); + ASSERT_EFI_ERROR (Status); + } + if (FeaturePcdGet (PcdStatusCodeUseMemory)) { + Status = MemoryStatusCodeInitializeWorker (); + ASSERT_EFI_ERROR (Status); + } + if (FeaturePcdGet (PcdStatusCodeUseOEM)) { + Status = OemHookStatusCodeInitialize (); + ASSERT_EFI_ERROR (Status); + } + + // + // Install Status Code PPI. + // It serves the PEI Service ReportStatusCode. + // + Status = PeiServicesInstallPpi (&mStatusCodePpiDescriptor); + ASSERT_EFI_ERROR (Status); + + return EFI_SUCCESS; +} + diff --git a/IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.h b/IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.h new file mode 100644 index 0000000..a609393 --- /dev/null +++ b/IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.h @@ -0,0 +1,148 @@ +/** @file + Internal include file for Status Code PEIM. + + Copyright (c) 2006 - 2009, 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 + http://opensource.org/licenses/bsd-license.php + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#ifndef __PEI_STATUS_CODE_H__ +#define __PEI_STATUS_CODE_H__ + + + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/** + Convert status code value and extended data to readable ASCII string, send string to serial I/O device. + + @param CodeType Indicates the type of status code being reported. + @param Value Describes the current status of a hardware or + software entity. This includes information about the class and + subclass that is used to classify the entity as well as an operation. + For progress codes, the operation is the current activity. + For error codes, it is the exception.For debug codes,it is not defined at this time. + @param Instance The enumeration of a hardware or software entity within + the system. A system may contain multiple entities that match a class/subclass + pairing. The instance differentiates between them. An instance of 0 indicates + that instance information is unavailable, not meaningful, or not relevant. + Valid instance numbers start with 1. + @param CallerId This optional parameter may be used to identify the caller. + This parameter allows the status code driver to apply different rules to + different callers. + @param Data This optional parameter may be used to pass additional data. + + @retval EFI_SUCCESS Status code reported to serial I/O successfully. + +**/ +EFI_STATUS +SerialStatusCodeReportWorker ( + IN EFI_STATUS_CODE_TYPE CodeType, + IN EFI_STATUS_CODE_VALUE Value, + IN UINT32 Instance, + IN CONST EFI_GUID *CallerId, + IN CONST EFI_STATUS_CODE_DATA *Data OPTIONAL + ); + + +/** + Create the first memory status code GUID'ed HOB as initialization for memory status code worker. + + @retval EFI_SUCCESS The GUID'ed HOB is created successfully. + +**/ +EFI_STATUS +MemoryStatusCodeInitializeWorker ( + VOID + ); + +/** + Report status code into GUID'ed HOB. + + This function reports status code into GUID'ed HOB. If not all packets are full, then + write status code into available entry. Otherwise, create a new packet for it. + + @param CodeType Indicates the type of status code being reported. + @param Value Describes the current status of a hardware or + software entity. This includes information about the class and + subclass that is used to classify the entity as well as an operation. + For progress codes, the operation is the current activity. + For error codes, it is the exception.For debug codes,it is not defined at this time. + @param Instance The enumeration of a hardware or software entity within + the system. A system may contain multiple entities that match a class/subclass + pairing. The instance differentiates between them. An instance of 0 indicates + that instance information is unavailable, not meaningful, or not relevant. + Valid instance numbers start with 1. + + @retval EFI_SUCCESS The function always return EFI_SUCCESS. + +**/ +EFI_STATUS +MemoryStatusCodeReportWorker ( + IN EFI_STATUS_CODE_TYPE CodeType, + IN EFI_STATUS_CODE_VALUE Value, + IN UINT32 Instance + ); + +/** + Publishes an interface that allows PEIMs to report status codes. + + This function implements EFI_PEI_PROGRESS_CODE_PPI.ReportStatusCode(). + It publishes an interface that allows PEIMs to report status codes. + + @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. + @param CodeType Indicates the type of status code being reported. + @param Value Describes the current status of a hardware or + software entity. This includes information about the class and + subclass that is used to classify the entity as well as an operation. + For progress codes, the operation is the current activity. + For error codes, it is the exception.For debug codes,it is not defined at this time. + @param Instance The enumeration of a hardware or software entity within + the system. A system may contain multiple entities that match a class/subclass + pairing. The instance differentiates between them. An instance of 0 indicates + that instance information is unavailable, not meaningful, or not relevant. + Valid instance numbers start with 1. + @param CallerId This optional parameter may be used to identify the caller. + This parameter allows the status code driver to apply different rules to + different callers. + @param Data This optional parameter may be used to pass additional data. + + @retval EFI_SUCCESS The function completed successfully. + +**/ +EFI_STATUS +EFIAPI +ReportDispatcher ( + IN CONST EFI_PEI_SERVICES **PeiServices, + IN EFI_STATUS_CODE_TYPE CodeType, + IN EFI_STATUS_CODE_VALUE Value, + IN UINT32 Instance, + IN CONST EFI_GUID *CallerId OPTIONAL, + IN CONST EFI_STATUS_CODE_DATA *Data OPTIONAL + ); + +#endif + + diff --git a/IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf b/IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf new file mode 100644 index 0000000..fade2de --- /dev/null +++ b/IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf @@ -0,0 +1,74 @@ +#/** @file +# Status code PEIM which produces Status Code PPI. +# +# Copyright (c) 2006 - 2009, 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 +# http://opensource.org/licenses/bsd-license.php +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +# +#**/ + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = StatusCodePei + FILE_GUID = 1EC0F53A-FDE0-4576-8F25-7A1A410F58EB + MODULE_TYPE = PEIM + VERSION_STRING = 1.0 + EFI_SPECIFICATION_VERSION = 0x00020000 + ENTRY_POINT = PeiStatusCodeDriverEntry + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 IPF EBC +# + +[Sources.common] + StatusCodePei.c + StatusCodePei.h + MemoryStausCodeWorker.c + SerialStatusCodeWorker.c + + +[Packages] + MdePkg/MdePkg.dec + IntelFrameworkPkg/IntelFrameworkPkg.dec + IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec + +[LibraryClasses] + PeimEntryPoint + OemHookStatusCodeLib + PeiServicesLib + PcdLib + HobLib + SerialPortLib + ReportStatusCodeLib + PrintLib + DebugLib + BaseLib + + +[Guids] + gMemoryStatusCodeRecordGuid ## SOMETIMES_CONSUMES ## HOB + + +[Ppis] + gEfiPeiStatusCodePpiGuid ## PRODUCES + + +[FeaturePcd.common] + gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseOEM + gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory + gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial + + +[Pcd.common] + gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize + +[Depex] + TRUE -- cgit v1.1