X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdePkg%2FInclude%2FPpi%2FDeviceRecoveryModule.h;h=7ca678a0ed36bf16d3e9e3bd1902dadfd65daaf5;hp=46c5cdeaae084567e54230ce438badeaef452f4a;hb=9df063a06aef048c042498e2f542fb693e93493a;hpb=0647c9adf92c6a8712091607a73b2768327a865d diff --git a/MdePkg/Include/Ppi/DeviceRecoveryModule.h b/MdePkg/Include/Ppi/DeviceRecoveryModule.h index 46c5cdeaae..7ca678a0ed 100644 --- a/MdePkg/Include/Ppi/DeviceRecoveryModule.h +++ b/MdePkg/Include/Ppi/DeviceRecoveryModule.h @@ -1,25 +1,32 @@ /** @file - This file declares Device Recovery Module PPI. + This file declares the Device Recovery Module PPI. - Copyright (c) 2006, Intel Corporation - 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 interface of this PPI does the following: + - Reports the number of recovery DXE capsules that exist on the associated device(s) + - Finds the requested firmware binary capsule + - Loads that capsule into memory - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + A device can be either a group of devices, such as a block device, or an individual device. + The module determines the internal search order, with capsule number 1 as the highest load + priority and number N as the lowest priority. - Module Name: DeviceRecoveryModule.h + Copyright (c) 2007 - 2009, Intel Corporation. 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. @par Revision Reference: - This PPI is defined in Framework of EFI Recovery spec. - Version 0.9 + This PPI is defined in UEFI Platform Initialization Specification 1.2 Volume 1: + Pre-EFI Initalization Core Interface **/ -#ifndef _PEI_DEVICE_RECOVERY_MODULE_PPI_H -#define _PEI_DEVICE_RECOVERY_MODULE_PPI_H +#ifndef _PEI_DEVICE_RECOVERY_MODULE_PPI_H_ +#define _PEI_DEVICE_RECOVERY_MODULE_PPI_H_ #define EFI_PEI_DEVICE_RECOVERY_MODULE_PPI_GUID \ { \ @@ -29,101 +36,109 @@ typedef struct _EFI_PEI_DEVICE_RECOVERY_MODULE_PPI EFI_PEI_DEVICE_RECOVERY_MODULE_PPI; /** - This function, by whatever mechanism, searches for DXE capsules from the - associated device and returns the number and maximum size in bytes of - the capsules discovered. Entry 1 is assumed to be the highest load priority - and entry N is assumed to be the lowest priority. - - @param PeiServices General-purpose services that are available to every PEIM - @param This Indicates the EFI_PEI_DEVICE_RECOVERY_MODULE_PPI instance. - @param NumberRecoveryCapsules Pointer to a caller-allocated UINTN. On output, - *NumberRecoveryCapsules contains the number of recovery capsule - images available for retrieval from this PEIM instance. - - @retval EFI_SUCCESS One or more capsules were discovered. - @retval EFI_DEVICE_ERROR A device error occurred. - @retval EFI_NOT_FOUND A recovery DXE capsule cannot be found. + Returns the number of DXE capsules residing on the device. + + This function searches for DXE capsules from the associated device and returns + the number and maximum size in bytes of the capsules discovered. Entry 1 is + assumed to be the highest load priority and entry N is assumed to be the lowest + priority. + + @param[in] PeiServices General-purpose services that are available + to every PEIM + @param[in] This Indicates the EFI_PEI_DEVICE_RECOVERY_MODULE_PPI + instance. + @param[out] NumberRecoveryCapsules Pointer to a caller-allocated UINTN. On + output, *NumberRecoveryCapsules contains + the number of recovery capsule images + available for retrieval from this PEIM + instance. + + @retval EFI_SUCCESS One or more capsules were discovered. + @retval EFI_DEVICE_ERROR A device error occurred. + @retval EFI_NOT_FOUND A recovery DXE capsule cannot be found. **/ typedef EFI_STATUS -(EFIAPI *EFI_PEI_DEVICE_GET_NUMBER_RECOVERY_CAPSULE) ( - IN EFI_PEI_SERVICES **PeiServices, - IN EFI_PEI_DEVICE_RECOVERY_MODULE_PPI *This, - OUT UINTN *NumberRecoveryCapsules +(EFIAPI *EFI_PEI_DEVICE_GET_NUMBER_RECOVERY_CAPSULE)( + IN EFI_PEI_SERVICES **PeiServices, + IN EFI_PEI_DEVICE_RECOVERY_MODULE_PPI *This, + OUT UINTN *NumberRecoveryCapsules ); /** - This function gets the size and type of the requested recovery capsule. - - @param PeiServices General-purpose services that are available to every PEIM - @param This Indicates the EFI_PEI_DEVICE_RECOVERY_MODULE_PPI instance. - @param CapsuleInstance Specifies for which capsule instance to retrieve the information. - @param Size A pointer to a caller-allocated UINTN in which the size of - the requested recovery module is returned. - @param CapsuleType A pointer to a caller-allocated EFI_GUID in - which the type of the requested recovery capsule is returned. - - @retval EFI_SUCCESS One or more capsules were discovered. - @retval EFI_DEVICE_ERROR A device error occurred. - @retval EFI_NOT_FOUND A recovery DXE capsule cannot be found. + Returns the size and type of the requested recovery capsule. + + This function gets the size and type of the capsule specified by CapsuleInstance. + + @param[in] PeiServices General-purpose services that are available to every PEIM + @param[in] This Indicates the EFI_PEI_DEVICE_RECOVERY_MODULE_PPI + instance. + @param[in] CapsuleInstance Specifies for which capsule instance to retrieve + the information. This parameter must be between + one and the value returned by GetNumberRecoveryCapsules() + in NumberRecoveryCapsules. + @param[out] Size A pointer to a caller-allocated UINTN in which + the size of the requested recovery module is + returned. + @param[out] CapsuleType A pointer to a caller-allocated EFI_GUID in which + the type of the requested recovery capsule is + returned. The semantic meaning of the value + returned is defined by the implementation. + + @retval EFI_SUCCESS One or more capsules were discovered. + @retval EFI_DEVICE_ERROR A device error occurred. + @retval EFI_NOT_FOUND A recovery DXE capsule cannot be found. **/ typedef EFI_STATUS -(EFIAPI *EFI_PEI_DEVICE_GET_RECOVERY_CAPSULE_INFO) ( - IN EFI_PEI_SERVICES **PeiServices, - IN EFI_PEI_DEVICE_RECOVERY_MODULE_PPI *This, - IN UINTN CapsuleInstance, - OUT UINTN *Size, - OUT EFI_GUID *CapsuleType +(EFIAPI *EFI_PEI_DEVICE_GET_RECOVERY_CAPSULE_INFO)( + IN EFI_PEI_SERVICES **PeiServices, + IN EFI_PEI_DEVICE_RECOVERY_MODULE_PPI *This, + IN UINTN CapsuleInstance, + OUT UINTN *Size, + OUT EFI_GUID *CapsuleType ); /** - This function, by whatever mechanism, retrieves a DXE capsule from some device + Loads a DXE capsule from some media into memory. + + This function, by whatever mechanism, retrieves a DXE capsule from some device and loads it into memory. Note that the published interface is device neutral. - @param PeiServices General-purpose services that are available to every PEIM - @param This Indicates the EFI_PEI_DEVICE_RECOVERY_MODULE_PPI instance. - @param CapsuleInstance Specifies which capsule instance to retrieve. - @param Buffer Specifies a caller-allocated buffer in which the requested - recovery capsule will be returned. + @param[in,out] PeiServices General-purpose services that are available + to every PEIM + @param[in] This Indicates the EFI_PEI_DEVICE_RECOVERY_MODULE_PPI + instance. + @param[in] CapsuleInstance Specifies which capsule instance to retrieve. + @param[out] Buffer Specifies a caller-allocated buffer in which + the requested recovery capsule will be returned. - @retval EFI_SUCCESS One or more capsules were discovered. - @retval EFI_DEVICE_ERROR A device error occurred. - @retval EFI_NOT_FOUND A recovery DXE capsule cannot be found. + @retval EFI_SUCCESS The capsule was loaded correctly. + @retval EFI_DEVICE_ERROR A device error occurred. + @retval EFI_NOT_FOUND A requested recovery DXE capsule cannot be found. **/ typedef EFI_STATUS -(EFIAPI *EFI_PEI_DEVICE_LOAD_RECOVERY_CAPSULE) ( - IN OUT EFI_PEI_SERVICES **PeiServices, - IN EFI_PEI_DEVICE_RECOVERY_MODULE_PPI *This, - IN UINTN CapsuleInstance, - OUT VOID *Buffer +(EFIAPI *EFI_PEI_DEVICE_LOAD_RECOVERY_CAPSULE)( + IN OUT EFI_PEI_SERVICES **PeiServices, + IN EFI_PEI_DEVICE_RECOVERY_MODULE_PPI *This, + IN UINTN CapsuleInstance, + OUT VOID *Buffer ); -/** - @par Ppi Description: - Presents a standard interface to EFI_PEI_DEVICE_RECOVERY_MODULE_PPI, - regardless of the underlying device(s). - - @param GetNumberRecoveryCapsules - Returns the number of DXE capsules that were found. - - @param GetRecoveryCapsuleInfo - Returns the capsule image type and the size of a given image. - - @param LoadRecoveryCapsule - Loads a DXE capsule into memory - -**/ +/// +/// Presents a standard interface to EFI_PEI_DEVICE_RECOVERY_MODULE_PPI, +/// regardless of the underlying device(s). +/// struct _EFI_PEI_DEVICE_RECOVERY_MODULE_PPI { - EFI_PEI_DEVICE_GET_NUMBER_RECOVERY_CAPSULE GetNumberRecoveryCapsules; - EFI_PEI_DEVICE_GET_RECOVERY_CAPSULE_INFO GetRecoveryCapsuleInfo; - EFI_PEI_DEVICE_LOAD_RECOVERY_CAPSULE LoadRecoveryCapsule; + EFI_PEI_DEVICE_GET_NUMBER_RECOVERY_CAPSULE GetNumberRecoveryCapsules; ///< Returns the number of DXE capsules residing on the device. + EFI_PEI_DEVICE_GET_RECOVERY_CAPSULE_INFO GetRecoveryCapsuleInfo; ///< Returns the size and type of the requested recovery capsule. + EFI_PEI_DEVICE_LOAD_RECOVERY_CAPSULE LoadRecoveryCapsule; ///< Loads a DXE capsule from some media into memory. }; extern EFI_GUID gEfiPeiDeviceRecoveryModulePpiGuid; -#endif +#endif /* _PEI_DEVICE_RECOVERY_MODULE_PPI_H_ */