Move Status Code Handler modules for PI implementation to MdeModulePkg.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9608 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@ -0,0 +1,90 @@
|
||||
/** @file
|
||||
Status Code Handler Driver which produces general handlers and hook them
|
||||
onto the SMM status code router.
|
||||
|
||||
Copyright (c) 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 "StatusCodeHandlerSmm.h"
|
||||
|
||||
EFI_SMM_RSC_HANDLER_PROTOCOL *mRscHandlerProtocol = NULL;
|
||||
|
||||
|
||||
/**
|
||||
Dispatch initialization request to sub status code devices based on
|
||||
customized feature flags.
|
||||
|
||||
**/
|
||||
VOID
|
||||
InitializationDispatcherWorker (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
|
||||
//
|
||||
// If enable UseSerial, then initialize serial port.
|
||||
// if enable UseRuntimeMemory, then initialize runtime memory status code worker.
|
||||
//
|
||||
if (FeaturePcdGet (PcdStatusCodeUseSerial)) {
|
||||
//
|
||||
// Call Serial Port Lib API to initialize serial port.
|
||||
//
|
||||
Status = SerialPortInitialize ();
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
}
|
||||
if (FeaturePcdGet (PcdStatusCodeUseMemory)) {
|
||||
Status = MemoryStatusCodeInitializeWorker ();
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
Entry point of SMM Status Code Driver.
|
||||
|
||||
This function is the entry point of SMM Status Code Driver.
|
||||
|
||||
@param ImageHandle The firmware allocated handle for the EFI image.
|
||||
@param SystemTable A pointer to the EFI System Table.
|
||||
|
||||
@retval EFI_SUCCESS The entry point is executed successfully.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
StatusCodeHandlerSmmEntry (
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
|
||||
Status = gSmst->SmmLocateProtocol (
|
||||
&gEfiSmmRscHandlerProtocolGuid,
|
||||
NULL,
|
||||
(VOID **) &mRscHandlerProtocol
|
||||
);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
//
|
||||
// Dispatch initialization request to supported devices
|
||||
//
|
||||
InitializationDispatcherWorker ();
|
||||
|
||||
if (FeaturePcdGet (PcdStatusCodeUseSerial)) {
|
||||
mRscHandlerProtocol->Register (SerialStatusCodeReportWorker);
|
||||
}
|
||||
if (FeaturePcdGet (PcdStatusCodeUseMemory)) {
|
||||
mRscHandlerProtocol->Register (MemoryStatusCodeReportWorker);
|
||||
}
|
||||
|
||||
return EFI_SUCCESS;
|
||||
}
|
Reference in New Issue
Block a user