]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OldMdePkg/Include/Ppi/DeviceRecoveryModule.h
Moved the MdePkg to OldMdePkg so that new code in MdePkg does not break existing...
[mirror_edk2.git] / OldMdePkg / Include / Ppi / DeviceRecoveryModule.h
diff --git a/OldMdePkg/Include/Ppi/DeviceRecoveryModule.h b/OldMdePkg/Include/Ppi/DeviceRecoveryModule.h
new file mode 100644 (file)
index 0000000..46c5cde
--- /dev/null
@@ -0,0 +1,129 @@
+/** @file\r
+  This file declares Device Recovery Module PPI.\r
+\r
+  Copyright (c) 2006, Intel Corporation                                                         \r
+  All rights reserved. This program and the accompanying materials                          \r
+  are licensed and made available under the terms and conditions of the BSD License         \r
+  which accompanies this distribution.  The full text of the license may be found at        \r
+  http://opensource.org/licenses/bsd-license.php                                            \r
+\r
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+  Module Name:  DeviceRecoveryModule.h\r
+\r
+  @par Revision Reference:\r
+  This PPI is defined in Framework of EFI Recovery spec.\r
+  Version 0.9\r
+\r
+**/\r
+\r
+#ifndef _PEI_DEVICE_RECOVERY_MODULE_PPI_H\r
+#define _PEI_DEVICE_RECOVERY_MODULE_PPI_H\r
+\r
+#define EFI_PEI_DEVICE_RECOVERY_MODULE_PPI_GUID \\r
+  { \\r
+    0x0DE2CE25, 0x446A, 0x45a7, {0xBF, 0xC9, 0x37, 0xDA, 0x26, 0x34, 0x4B, 0x37 } \\r
+  }\r
+\r
+typedef struct _EFI_PEI_DEVICE_RECOVERY_MODULE_PPI EFI_PEI_DEVICE_RECOVERY_MODULE_PPI;\r
+\r
+/**\r
+  This function, by whatever mechanism, searches for DXE capsules from the \r
+  associated device and returns the number and maximum size in bytes of \r
+  the capsules discovered. Entry 1 is assumed to be the highest load priority \r
+  and entry N is assumed to be the lowest priority.\r
+\r
+  @param  PeiServices            General-purpose services that are available to every PEIM\r
+  @param  This                   Indicates the EFI_PEI_DEVICE_RECOVERY_MODULE_PPI instance.\r
+  @param  NumberRecoveryCapsules Pointer to a caller-allocated UINTN. On output,\r
+                                 *NumberRecoveryCapsules contains the number of recovery capsule \r
+                                 images available for retrieval from this PEIM instance.\r
+\r
+  @retval EFI_SUCCESS           One or more capsules were discovered.\r
+  @retval EFI_DEVICE_ERROR      A device error occurred.\r
+  @retval EFI_NOT_FOUND         A recovery DXE capsule cannot be found.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_PEI_DEVICE_GET_NUMBER_RECOVERY_CAPSULE) (\r
+  IN EFI_PEI_SERVICES                               **PeiServices,\r
+  IN EFI_PEI_DEVICE_RECOVERY_MODULE_PPI             *This,\r
+  OUT UINTN                                         *NumberRecoveryCapsules\r
+  );\r
+\r
+/**\r
+  This function gets the size and type of the requested recovery capsule.\r
+\r
+  @param  PeiServices     General-purpose services that are available to every PEIM\r
+  @param  This            Indicates the EFI_PEI_DEVICE_RECOVERY_MODULE_PPI instance.\r
+  @param  CapsuleInstance Specifies for which capsule instance to retrieve the information.\r
+  @param  Size            A pointer to a caller-allocated UINTN in which the size of\r
+                          the requested recovery module is returned.\r
+  @param  CapsuleType     A pointer to a caller-allocated EFI_GUID in\r
+                          which the type of the requested recovery capsule is returned.\r
+\r
+  @retval EFI_SUCCESS           One or more capsules were discovered.\r
+  @retval EFI_DEVICE_ERROR      A device error occurred.\r
+  @retval EFI_NOT_FOUND         A recovery DXE capsule cannot be found.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_PEI_DEVICE_GET_RECOVERY_CAPSULE_INFO) (\r
+  IN  EFI_PEI_SERVICES                              **PeiServices,\r
+  IN  EFI_PEI_DEVICE_RECOVERY_MODULE_PPI            *This,\r
+  IN  UINTN                                         CapsuleInstance,\r
+  OUT UINTN                                         *Size,\r
+  OUT EFI_GUID                                      *CapsuleType\r
+  );\r
+\r
+/**\r
+  This function, by whatever mechanism, retrieves a DXE capsule from some device \r
+  and loads it into memory. Note that the published interface is device neutral.\r
+\r
+  @param  PeiServices     General-purpose services that are available to every PEIM\r
+  @param  This            Indicates the EFI_PEI_DEVICE_RECOVERY_MODULE_PPI instance.\r
+  @param  CapsuleInstance Specifies which capsule instance to retrieve.\r
+  @param  Buffer          Specifies a caller-allocated buffer in which the requested \r
+                          recovery capsule will be returned.\r
+\r
+  @retval EFI_SUCCESS           One or more capsules were discovered.\r
+  @retval EFI_DEVICE_ERROR      A device error occurred.\r
+  @retval EFI_NOT_FOUND         A recovery DXE capsule cannot be found.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_PEI_DEVICE_LOAD_RECOVERY_CAPSULE) (\r
+  IN OUT EFI_PEI_SERVICES                         **PeiServices,\r
+  IN EFI_PEI_DEVICE_RECOVERY_MODULE_PPI           *This,\r
+  IN UINTN                                        CapsuleInstance,\r
+  OUT VOID                                        *Buffer\r
+  );\r
+\r
+/**\r
+  @par Ppi Description:\r
+  Presents a standard interface to EFI_PEI_DEVICE_RECOVERY_MODULE_PPI, \r
+  regardless of the underlying device(s).\r
+\r
+  @param GetNumberRecoveryCapsules\r
+  Returns the number of DXE capsules that were found.\r
+\r
+  @param GetRecoveryCapsuleInfo\r
+  Returns the capsule image type and the size of a given image. \r
+\r
+  @param LoadRecoveryCapsule\r
+  Loads a DXE capsule into memory\r
+\r
+**/\r
+struct _EFI_PEI_DEVICE_RECOVERY_MODULE_PPI {\r
+  EFI_PEI_DEVICE_GET_NUMBER_RECOVERY_CAPSULE  GetNumberRecoveryCapsules;\r
+  EFI_PEI_DEVICE_GET_RECOVERY_CAPSULE_INFO    GetRecoveryCapsuleInfo;\r
+  EFI_PEI_DEVICE_LOAD_RECOVERY_CAPSULE        LoadRecoveryCapsule;\r
+};\r
+\r
+extern EFI_GUID gEfiPeiDeviceRecoveryModulePpiGuid;\r
+\r
+#endif\r