git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10418 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			110 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   Internal include file for Report Status Code Router PEIM.
 | |
| 
 | |
|   Copyright (c) 2009, Intel Corporation. All rights reserved.<BR>
 | |
|   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_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
 | |
| 
 | |
| 
 |