From 25126a0530371f7a8e20bf663cc1beaf3eebd6f2 Mon Sep 17 00:00:00 2001 From: xli24 Date: Tue, 3 Nov 2009 02:39:10 +0000 Subject: Enable Report Status Code Router introduced in PI 1.2 for PEI and DXE. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9388 6f19259b-4bc3-4df7-8a09-765794883524 --- .../WinNtOemHookStatusCodeHandlerPei.c | 89 ++++++++++++++++++++++ .../WinNtOemHookStatusCodeHandlerPei.inf | 51 +++++++++++++ 2 files changed, 140 insertions(+) create mode 100644 Nt32Pkg/WinNtOemHookStatusCodeHandlerPei/WinNtOemHookStatusCodeHandlerPei.c create mode 100644 Nt32Pkg/WinNtOemHookStatusCodeHandlerPei/WinNtOemHookStatusCodeHandlerPei.inf (limited to 'Nt32Pkg/WinNtOemHookStatusCodeHandlerPei') diff --git a/Nt32Pkg/WinNtOemHookStatusCodeHandlerPei/WinNtOemHookStatusCodeHandlerPei.c b/Nt32Pkg/WinNtOemHookStatusCodeHandlerPei/WinNtOemHookStatusCodeHandlerPei.c new file mode 100644 index 0000000000..e9ab12a267 --- /dev/null +++ b/Nt32Pkg/WinNtOemHookStatusCodeHandlerPei/WinNtOemHookStatusCodeHandlerPei.c @@ -0,0 +1,89 @@ +/** @file + OEM hook status code handler PEIM which produces general handler and hook it + onto the PEI status code router. + + 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. + +**/ + +// +// The package level header files this module uses +// +#include + +// +// The protocols, PPI and GUID defintions for this module +// +#include +// +// The Library classes this module consumes +// +#include +#include +#include +#include + +EFI_STATUS +EFIAPI +OemHookStatusCodeReportWrapper ( + 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 + ) +{ + return OemHookStatusCodeReport ( + CodeType, + Value, + Instance, + (EFI_GUID *) CallerId, + (EFI_STATUS_CODE_DATA *) Data + ); +} + +/** + Entry point of OEM hook status code handler PEIM. + + This function is the entry point of this OEM hook status code handler PEIM. + It initializes and registers OEM status code handler. + + @param FileHandle Handle of the file being invoked. + @param PeiServices Describes the list of possible PEI Services. + + @retval EFI_SUCESS The entry point executes successfully. + +**/ +EFI_STATUS +EFIAPI +WinNtOemHookStatusCodeHandlerPeiEntry ( + IN EFI_PEI_FILE_HANDLE FileHandle, + IN CONST EFI_PEI_SERVICES **PeiServices + ) +{ + EFI_STATUS Status; + EFI_PEI_RSC_HANDLER_PPI *RscHandlerPpi; + + Status = PeiServicesLocatePpi ( + &gEfiPeiRscHandlerPpiGuid, + 0, + NULL, + (VOID **) &RscHandlerPpi + ); + ASSERT_EFI_ERROR (Status); + + OemHookStatusCodeInitialize (); + + Status = RscHandlerPpi->Register (OemHookStatusCodeReportWrapper); + ASSERT_EFI_ERROR (Status); + + return EFI_SUCCESS; +} diff --git a/Nt32Pkg/WinNtOemHookStatusCodeHandlerPei/WinNtOemHookStatusCodeHandlerPei.inf b/Nt32Pkg/WinNtOemHookStatusCodeHandlerPei/WinNtOemHookStatusCodeHandlerPei.inf new file mode 100644 index 0000000000..b5a18a7188 --- /dev/null +++ b/Nt32Pkg/WinNtOemHookStatusCodeHandlerPei/WinNtOemHookStatusCodeHandlerPei.inf @@ -0,0 +1,51 @@ +#/** @file +# OEM hook status code handler PEIM which produces general handler and hook it +# onto the PEI status code router. +# +# Copyright (c) 2007 - 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 = WinNtOemHookStatusCodeHandlerPei + FILE_GUID = D233D6BD-F1B1-425A-BF45-5CAF2B88EDDC + MODULE_TYPE = PEIM + ENTRY_POINT = WinNtOemHookStatusCodeHandlerPeiEntry + + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 +# + +[Sources.common] + WinNtOemHookStatusCodeHandlerPei.c + + +[Packages] + MdePkg/MdePkg.dec + IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec + Nt32Pkg/Nt32Pkg.dec + +[LibraryClasses] + PeimEntryPoint + PeiServicesLib + DebugLib + OemHookStatusCodeLib + +[Ppis] + gEfiPeiRscHandlerPpiGuid ## CONSUMES + +[Depex] + gEfiPeiRscHandlerPpiGuid -- cgit v1.2.3