2, Add DevicePathLib library class to module's INF that use device path utility macros git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6457 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			136 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   Internal Header file of Report Status Code Library for RUNTIME
 | |
|   DXE Phase.
 | |
| 
 | |
|   Copyright (c) 2006 - 2007, Intel Corporation<BR>
 | |
|   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.
 | |
| 
 | |
| **/
 | |
| #ifndef __REPORT_STATUS_CODE_LIB_INTERNAL__H
 | |
| #define __REPORT_STATUS_CODE_LIB_INTERNAL__H
 | |
| 
 | |
| #include <FrameworkDxe.h>
 | |
| 
 | |
| #include <Library/ReportStatusCodeLib.h>
 | |
| #include <Library/DebugLib.h>
 | |
| #include <Library/UefiBootServicesTableLib.h>
 | |
| #include <Library/BaseLib.h>
 | |
| #include <Library/BaseMemoryLib.h>
 | |
| #include <Library/PcdLib.h>
 | |
| #include <Library/UefiRuntimeServicesTableLib.h>
 | |
| #include <Library/DevicePathLib.h>
 | |
| 
 | |
| #include <Guid/StatusCodeDataTypeId.h>
 | |
| #include <Protocol/StatusCode.h>
 | |
| 
 | |
| #include <FrameworkModuleBase.h>
 | |
| #include <DebugInfo.h>
 | |
| 
 | |
| 
 | |
| /**
 | |
|   Locate he report status code service.
 | |
| 
 | |
|   @return     EFI_REPORT_STATUS_CODE    function point to
 | |
|               ReportStatusCode.
 | |
| **/
 | |
| EFI_REPORT_STATUS_CODE
 | |
| InternalGetReportStatusCode (
 | |
|   VOID
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Internal worker function that reports a status code through the Status Code Protocol
 | |
| 
 | |
|   This function checks to see if a Status Code Protocol is present in the handle
 | |
|   database.  If a Status Code Protocol is not present, then EFI_UNSUPPORTED is
 | |
|   returned.  If a Status Code Protocol is present, then it is cached in gStatusCode,
 | |
|   and the ReportStatusCode() service of the Status Code Protocol is called passing in
 | |
|   Type, Value, Instance, CallerId, and Data.  The result of this call is returned.
 | |
| 
 | |
|   @param  Type              Status code type.
 | |
|   @param  Value             Status code value.
 | |
|   @param  Instance          Status code instance number.
 | |
|   @param  CallerId          Pointer to a GUID that identifies the caller of this
 | |
|                             function.  This is an optional parameter that may be
 | |
|                             NULL.
 | |
|   @param  Data              Pointer to the extended data buffer.  This is an
 | |
|                             optional parameter that may be NULL.
 | |
| 
 | |
|   @retval  EFI_SUCCESS           The status code was reported.
 | |
|   @retval  EFI_OUT_OF_RESOURCES  There were not enough resources to report the status code.
 | |
|   @retval  EFI_UNSUPPORTED       Status Code Protocol is not available.
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| InternalReportStatusCode (
 | |
|   IN EFI_STATUS_CODE_TYPE     Type,
 | |
|   IN EFI_STATUS_CODE_VALUE    Value,
 | |
|   IN UINT32                   Instance,
 | |
|   IN CONST EFI_GUID           *CallerId OPTIONAL,
 | |
|   IN EFI_STATUS_CODE_DATA     *Data     OPTIONAL
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Reports a status code with full parameters.
 | |
| 
 | |
|   The function reports a status code.  If ExtendedData is NULL and ExtendedDataSize
 | |
|   is 0, then an extended data buffer is not reported.  If ExtendedData is not
 | |
|   NULL and ExtendedDataSize is not 0, then an extended data buffer is allocated.
 | |
|   ExtendedData is assumed not have the standard status code header, so this function
 | |
|   is responsible for allocating a buffer large enough for the standard header and
 | |
|   the extended data passed into this function.  The standard header is filled in
 | |
|   with a GUID specified by ExtendedDataGuid.  If ExtendedDataGuid is NULL, then a
 | |
|   GUID of gEfiStatusCodeSpecificDatauid is used.  The status code is reported with
 | |
|   an instance specified by Instance and a caller ID specified by CallerId.  If
 | |
|   CallerId is NULL, then a caller ID of gEfiCallerIdGuid is used.
 | |
| 
 | |
|   ReportStatusCodeEx()must actively prevent recursion.  If ReportStatusCodeEx()
 | |
|   is called while processing another any other Report Status Code Library function,
 | |
|   then ReportStatusCodeEx() must return EFI_DEVICE_ERROR immediately.
 | |
| 
 | |
|   If ExtendedData is NULL and ExtendedDataSize is not zero, then ASSERT().
 | |
|   If ExtendedData is not NULL and ExtendedDataSize is zero, then ASSERT().
 | |
| 
 | |
|   @param  Type              Status code type.
 | |
|   @param  Value             Status code value.
 | |
|   @param  Instance          Status code instance number.
 | |
|   @param  CallerId          Pointer to a GUID that identifies the caller of this
 | |
|                             function.  If this parameter is NULL, then a caller
 | |
|                             ID of gEfiCallerIdGuid is used.
 | |
|   @param  ExtendedDataGuid  Pointer to the GUID for the extended data buffer.
 | |
|                             If this parameter is NULL, then a the status code
 | |
|                             standard header is filled in with
 | |
|                             gEfiStatusCodeSpecificDataGuid.
 | |
|   @param  ExtendedData      Pointer to the extended data buffer.  This is an
 | |
|                             optional parameter that may be NULL.
 | |
|   @param  ExtendedDataSize  The size, in bytes, of the extended data buffer.
 | |
| 
 | |
|   @retval  EFI_SUCCESS           The status code was reported.
 | |
|   @retval  EFI_OUT_OF_RESOURCES  There were not enough resources to allocate
 | |
|                                  the extended data section if it was specified.
 | |
|   @retval  EFI_UNSUPPORTED       Report status code is not supported
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| InternalReportStatusCodeEx (
 | |
|   IN EFI_STATUS_CODE_TYPE   Type,
 | |
|   IN EFI_STATUS_CODE_VALUE  Value,
 | |
|   IN UINT32                 Instance,
 | |
|   IN CONST EFI_GUID         *CallerId          OPTIONAL,
 | |
|   IN CONST EFI_GUID         *ExtendedDataGuid  OPTIONAL,
 | |
|   IN CONST VOID             *ExtendedData      OPTIONAL,
 | |
|   IN UINTN                  ExtendedDataSize
 | |
|   );
 | |
| 
 | |
| extern EFI_REPORT_STATUS_CODE  mReportStatusCode;
 | |
| 
 | |
| #endif // __REPORT_STATUS_CODE_LIB_INTERNAL__H
 | |
| 
 |