X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=OldMdePkg%2FInclude%2FPpi%2FDeviceRecoveryModule.h;fp=OldMdePkg%2FInclude%2FPpi%2FDeviceRecoveryModule.h;h=46c5cdeaae084567e54230ce438badeaef452f4a;hp=0000000000000000000000000000000000000000;hb=586cd1f1f4129ab7ec24543d4968801e17cc870b;hpb=144d783d40c8a02113350feabd1b9a55b692313f diff --git a/OldMdePkg/Include/Ppi/DeviceRecoveryModule.h b/OldMdePkg/Include/Ppi/DeviceRecoveryModule.h new file mode 100644 index 0000000000..46c5cdeaae --- /dev/null +++ b/OldMdePkg/Include/Ppi/DeviceRecoveryModule.h @@ -0,0 +1,129 @@ +/** @file + This file declares 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 PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + + Module Name: DeviceRecoveryModule.h + + @par Revision Reference: + This PPI is defined in Framework of EFI Recovery spec. + Version 0.9 + +**/ + +#ifndef _PEI_DEVICE_RECOVERY_MODULE_PPI_H +#define _PEI_DEVICE_RECOVERY_MODULE_PPI_H + +#define EFI_PEI_DEVICE_RECOVERY_MODULE_PPI_GUID \ + { \ + 0x0DE2CE25, 0x446A, 0x45a7, {0xBF, 0xC9, 0x37, 0xDA, 0x26, 0x34, 0x4B, 0x37 } \ + } + +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. + +**/ +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 + ); + +/** + 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. + +**/ +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 + ); + +/** + 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. + + @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_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 + +**/ +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; +}; + +extern EFI_GUID gEfiPeiDeviceRecoveryModulePpiGuid; + +#endif