REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the MdePkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
		
			
				
	
	
		
			131 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			131 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   Defines the APIs that enable PEI services to work with
 | |
|   the underlying capsule capabilities of the platform.
 | |
| 
 | |
| Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
 | |
| SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
|   @par Revision Reference:
 | |
|   This PPI is introduced in PI Version 1.4.
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef _PEI_CAPSULE_PPI_H_
 | |
| #define _PEI_CAPSULE_PPI_H_
 | |
| 
 | |
| ///
 | |
| /// Global ID for the EFI_PEI_CAPSULE_PPI.
 | |
| ///
 | |
| #define EFI_PEI_CAPSULE_PPI_GUID \
 | |
|   { \
 | |
|     0x3acf33ee, 0xd892, 0x40f4, {0xa2, 0xfc, 0x38, 0x54, 0xd2, 0xe1, 0x32, 0x3d } \
 | |
|   }
 | |
| 
 | |
| ///
 | |
| /// Forward declaration for the EFI_PEI_CAPSULE_PPI.
 | |
| ///
 | |
| typedef struct _EFI_PEI_CAPSULE_PPI EFI_PEI_CAPSULE_PPI;
 | |
| 
 | |
| ///
 | |
| /// Keep name backwards compatible before PI Version 1.4
 | |
| ///
 | |
| typedef struct _EFI_PEI_CAPSULE_PPI PEI_CAPSULE_PPI;
 | |
| 
 | |
| /**
 | |
|   Upon determining that there is a capsule to operate on, this service
 | |
|   will use a series of EFI_CAPSULE_BLOCK_DESCRIPTOR entries to determine
 | |
|   the current location of the various capsule fragments and coalesce them
 | |
|   into a contiguous region of system memory.
 | |
| 
 | |
|   @param[in]  PeiServices   Pointer to the PEI Services Table.
 | |
|   @param[out] MemoryBase    Pointer to the base of a block of memory into which the buffers will be coalesced.
 | |
|                             On output, this variable will hold the base address
 | |
|                             of a coalesced capsule.
 | |
|   @param[out] MemorySize    Size of the memory region pointed to by MemoryBase.
 | |
|                             On output, this variable will contain the size of the
 | |
|                             coalesced capsule.
 | |
| 
 | |
|   @retval EFI_NOT_FOUND          If: boot mode could not be determined, or the
 | |
|                                  boot mode is not flash-update, or the capsule descriptors were not found.
 | |
|   @retval EFI_BUFFER_TOO_SMALL   The capsule could not be coalesced in the provided memory region.
 | |
|   @retval EFI_SUCCESS            There was no capsule, or the capsule was processed successfully.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_PEI_CAPSULE_COALESCE)(
 | |
|   IN EFI_PEI_SERVICES  **PeiServices,
 | |
|   IN OUT VOID          **MemoryBase,
 | |
|   IN OUT UINTN         *MemSize
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Determine if a capsule needs to be processed.
 | |
|   The means by which the presence of a capsule is determined is platform
 | |
|   specific. For example, an implementation could be driven by the presence
 | |
|   of a Capsule EFI Variable containing a list of EFI_CAPSULE_BLOCK_DESCRIPTOR
 | |
|   entries. If present, return EFI_SUCCESS, otherwise return EFI_NOT_FOUND.
 | |
| 
 | |
|   @param[in] PeiServices   Pointer to the PEI Services Table.
 | |
| 
 | |
|   @retval EFI_SUCCESS     If a capsule is available.
 | |
|   @retval EFI_NOT_FOUND   No capsule detected.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_PEI_CAPSULE_CHECK_CAPSULE_UPDATE)(
 | |
|   IN EFI_PEI_SERVICES  **PeiServices
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   The Capsule PPI service that gets called after memory is available. The
 | |
|   capsule coalesce function, which must be called first, returns a base
 | |
|   address and size. Once the memory init PEIM has discovered memory,
 | |
|   it should call this function and pass in the base address and size
 | |
|   returned by the Coalesce() function. Then this function can create a
 | |
|   capsule HOB and return.
 | |
| 
 | |
|   @par Notes:
 | |
|     This function assumes it will not be called until the
 | |
|     actual capsule update.
 | |
| 
 | |
|   @param[in] PeiServices   Pointer to the PEI Services Table.
 | |
|   @param[in] CapsuleBase   Address returned by the capsule coalesce function.
 | |
|   @param[in] CapsuleSize   Value returned by the capsule coalesce function.
 | |
| 
 | |
|   @retval EFI_VOLUME_CORRUPTED   CapsuleBase does not appear to point to a
 | |
|                                  coalesced capsule.
 | |
|   @retval EFI_SUCCESS            Capsule HOB was created successfully.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_PEI_CAPSULE_CREATE_STATE)(
 | |
|   IN EFI_PEI_SERVICES  **PeiServices,
 | |
|   IN VOID              *CapsuleBase,
 | |
|   IN UINTN             CapsuleSize
 | |
|   );
 | |
| 
 | |
| ///
 | |
| /// This PPI provides several services in PEI to work with the underlying
 | |
| /// capsule capabilities of the platform.  These services include the ability
 | |
| /// for PEI to coalesce a capsule from a scattered set of memory locations
 | |
| /// into a contiguous space in memory, detect if a capsule is present for
 | |
| /// processing, and once memory is available, create a HOB for the capsule.
 | |
| ///
 | |
| struct _EFI_PEI_CAPSULE_PPI {
 | |
|   EFI_PEI_CAPSULE_COALESCE                Coalesce;
 | |
|   EFI_PEI_CAPSULE_CHECK_CAPSULE_UPDATE    CheckCapsuleUpdate;
 | |
|   EFI_PEI_CAPSULE_CREATE_STATE            CreateState;
 | |
| };
 | |
| 
 | |
| ///
 | |
| /// Keep name backwards compatible before PI Version 1.4
 | |
| ///
 | |
| extern EFI_GUID  gPeiCapsulePpiGuid;
 | |
| 
 | |
| extern EFI_GUID  gEfiPeiCapsulePpiGuid;
 | |
| 
 | |
| #endif // #ifndef _PEI_CAPSULE_PPI_H_
 |