123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- /** @file
- Internal include file for Report Status Code Router PEIM.
- @copyright
- Copyright (c) 2009 - 2021, Intel Corporation. All rights reserved.<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
- **/
- #ifndef __PEI_REPORT_STATUS_CODE_ROUTER_H__
- #define __PEI_REPORT_STATUS_CODE_ROUTER_H__
- #include <Ppi/ReportStatusCodeHandler.h>
- #include <Ppi/StatusCode.h>
- #include <Guid/StatusCodeCallbackGuid.h>
- #include <Library/DebugLib.h>
- #include <Library/HobLib.h>
- #include <Library/PeiServicesLib.h>
- #include <Library/PeimEntryPoint.h>
- /**
- Register the callback function for ReportStatusCode() notification.
- When this function is called the function pointer is added to an internal list and any future calls to
- ReportStatusCode() will be forwarded to the Callback function.
- @param[in] Callback A pointer to a function of type EFI_PEI_RSC_HANDLER_CALLBACK that is called
- when a call to ReportStatusCode() occurs.
- @retval EFI_SUCCESS Function was successfully registered.
- @retval EFI_INVALID_PARAMETER The callback function was NULL.
- @retval EFI_OUT_OF_RESOURCES The internal buffer ran out of space. No more functions can be
- registered.
- @retval EFI_ALREADY_STARTED The function was already registered. It can't be registered again.
- **/
- EFI_STATUS
- EFIAPI
- Register (
- IN EFI_PEI_RSC_HANDLER_CALLBACK Callback
- );
- /**
- Remove a previously registered callback function from the notification list.
- ReportStatusCode() messages will no longer be forwarded to the Callback function.
- @param[in] Callback A pointer to a function of type EFI_PEI_RSC_HANDLER_CALLBACK that is to be
- unregistered.
- @retval EFI_SUCCESS The function was successfully unregistered.
- @retval EFI_INVALID_PARAMETER The callback function was NULL.
- @retval EFI_NOT_FOUND The callback function was not found to be unregistered.
- **/
- EFI_STATUS
- EFIAPI
- Unregister (
- IN EFI_PEI_RSC_HANDLER_CALLBACK Callback
- );
- /**
- 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
|