+++ /dev/null
-/** @file\r
- Status Code Handler Driver which produces datahub handler and hook it\r
- onto the DXE status code router.\r
-\r
- Copyright (c) 2010 - 2019, Intel Corporation. All rights reserved.<BR>\r
- SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#include "DatahubStatusCodeHandlerDxe.h"\r
-\r
-static EFI_EVENT mExitBootServicesEvent = NULL;\r
-EFI_RSC_HANDLER_PROTOCOL *mRscHandlerProtocol = NULL;\r
-\r
-/**\r
- Unregister status code callback functions only available at boot time from\r
- report status code router when exiting boot services.\r
-\r
- @param Event Event whose notification function is being invoked.\r
- @param Context Pointer to the notification function's context, which is\r
- always zero in current implementation.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-UnregisterBootTimeHandlers (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
- )\r
-{\r
- mRscHandlerProtocol->Unregister (DataHubStatusCodeReportWorker);\r
-}\r
-\r
-/**\r
- Entry point of DXE Status Code Driver.\r
-\r
- This function is the entry point of this DXE Status Code Driver.\r
- It initializes registers status code handlers, and registers event for EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE.\r
-\r
- @param ImageHandle The firmware allocated handle for the EFI image.\r
- @param SystemTable A pointer to the EFI System Table.\r
-\r
- @retval EFI_SUCCESS The entry point is executed successfully.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-DatahubStatusCodeHandlerDxeEntry (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
- )\r
-{\r
- EFI_STATUS Status;\r
-\r
- if (FeaturePcdGet (PcdStatusCodeUseDataHub)) {\r
- Status = gBS->LocateProtocol (\r
- &gEfiRscHandlerProtocolGuid,\r
- NULL,\r
- (VOID **) &mRscHandlerProtocol\r
- );\r
- ASSERT_EFI_ERROR (Status);\r
-\r
- //\r
- // Dispatch initialization request to supported devices\r
- //\r
- DataHubStatusCodeInitializeWorker ();\r
-\r
- mRscHandlerProtocol->Register (DataHubStatusCodeReportWorker, TPL_HIGH_LEVEL);\r
-\r
- Status = gBS->CreateEventEx (\r
- EVT_NOTIFY_SIGNAL,\r
- TPL_NOTIFY,\r
- UnregisterBootTimeHandlers,\r
- NULL,\r
- &gEfiEventExitBootServicesGuid,\r
- &mExitBootServicesEvent\r
- );\r
- ASSERT_EFI_ERROR (Status);\r
- }\r
-\r
- return EFI_SUCCESS;\r
-}\r