git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5758 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			93 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   Include the required header files for Capsule Runtime Service drivers.
 | |
| 
 | |
| Copyright (c) 2006 - 2008, 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  _CAPSULE_RUNTIME_H_
 | |
| #define  _CAPSULE_RUNTIME_H_
 | |
| 
 | |
| 
 | |
| #include <Uefi.h>
 | |
| 
 | |
| #include <Protocol/Capsule.h>
 | |
| #include <Guid/CapsuleVendor.h>
 | |
| 
 | |
| #include <Library/UefiDriverEntryPoint.h>
 | |
| #include <Library/UefiRuntimeLib.h>
 | |
| #include <Library/DebugLib.h>
 | |
| #include <Library/PcdLib.h>
 | |
| #include <Library/UefiBootServicesTableLib.h>
 | |
| #include <Library/CapsuleLib.h>
 | |
| 
 | |
| /**
 | |
|   Passes capsules to the firmware with both virtual and physical mapping. Depending on the intended
 | |
|   consumption, the firmware may process the capsule immediately. If the payload should persist
 | |
|   across a system reset, the reset value returned from EFI_QueryCapsuleCapabilities must
 | |
|   be passed into ResetSystem() and will cause the capsule to be processed by the firmware as
 | |
|   part of the reset process.
 | |
| 
 | |
|   @param  CapsuleHeaderArray    Virtual pointer to an array of virtual pointers to the capsules
 | |
|                                 being passed into update capsule.
 | |
|   @param  CapsuleCount          Number of pointers to EFI_CAPSULE_HEADER in
 | |
|                                 CaspuleHeaderArray.
 | |
|   @param  ScatterGatherList     Physical pointer to a set of
 | |
|                                 EFI_CAPSULE_BLOCK_DESCRIPTOR that describes the
 | |
|                                 location in physical memory of a set of capsules.
 | |
| 
 | |
|   @retval EFI_SUCCESS           Valid capsule was passed. If
 | |
|                                 CAPSULE_FLAGS_PERSIT_ACROSS_RESET is not set, the
 | |
|                                 capsule has been successfully processed by the firmware.
 | |
|   @retval EFI_DEVICE_ERROR      The capsule update was started, but failed due to a device error.
 | |
|   @retval EFI_INVALID_PARAMETER CapsuleCount is Zero, or CapsuleImage is not valid.
 | |
|                                 For across reset capsule image, ScatterGatherList is NULL.
 | |
|   @retval EFI_UNSUPPORTED       CapsuleImage is not recognized by the firmware.
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| UpdateCapsule(
 | |
|   IN EFI_CAPSULE_HEADER      **CapsuleHeaderArray,
 | |
|   IN UINTN                   CapsuleCount,
 | |
|   IN EFI_PHYSICAL_ADDRESS    ScatterGatherList OPTIONAL
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Returns if the capsule can be supported via UpdateCapsule().
 | |
| 
 | |
|   @param  CapsuleHeaderArray    Virtual pointer to an array of virtual pointers to the capsules
 | |
|                                 being passed into update capsule.
 | |
|   @param  CapsuleCount          Number of pointers to EFI_CAPSULE_HEADER in
 | |
|                                 CaspuleHeaderArray.
 | |
|   @param  MaxiumCapsuleSize     On output the maximum size that UpdateCapsule() can
 | |
|                                 support as an argument to UpdateCapsule() via
 | |
|                                 CapsuleHeaderArray and ScatterGatherList.
 | |
|   @param  ResetType             Returns the type of reset required for the capsule update.
 | |
| 
 | |
|   @retval EFI_SUCCESS           Valid answer returned.
 | |
|   @retval EFI_UNSUPPORTED       The capsule image is not supported on this platform, and
 | |
|                                 MaximumCapsuleSize and ResetType are undefined.
 | |
|   @retval EFI_INVALID_PARAMETER MaximumCapsuleSize is NULL, or ResetTyep is NULL,
 | |
|                                 Or CapsuleCount is Zero, or CapsuleImage is not valid.
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| QueryCapsuleCapabilities(
 | |
|   IN  EFI_CAPSULE_HEADER   **CapsuleHeaderArray,
 | |
|   IN  UINTN                CapsuleCount,
 | |
|   OUT UINT64               *MaxiumCapsuleSize,
 | |
|   OUT EFI_RESET_TYPE       *ResetType
 | |
|   );
 | |
| 
 | |
| #endif
 | |
| 
 |