audk/MdeModulePkg/Include/Ppi/CapsuleOnDisk.h
Wei6 Xu 1103ba946a MdeModulePkg: Add Capsule On Disk related definition.
REF: https://github.com/tianocore/tianocore.github.io/wiki/
UEFI-Capsule-on-Disk-Introducation

This patch will add Capsule On Disk related definition, including
GUID, PPI and PCDs:
The Capsule On Disk Name GUID indicates the capsule is to store
Capsule On Disk file names.
The Pei Capsule On Disk PPI provides service to retrieve capsules
from Capsule On Disk temp relocation file on mass storage devices
and create capsule hob for these capsules.
Pei Boot In CapsuleOnDisk Mode Ppi indicates current boot mode is
capsule on disk mode.
PcdCapsuleOnDiskSupport is used to enable/disable Capsule On Disk.
PcdCapsuleInRamSupport is used to enable/disable Capsule In Ram.
PcdCoDRelocationFileName specifies the Capsule On Disk temp
relocation file name.
PcdCodRelocationDevPath specifies platform specific device to store
Capsule On Disk temp relocation file.

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Hao A Wu <hao.a.wu@intel.com>
Cc: Chao B Zhang <chao.b.zhang@intel.com>
Signed-off-by: Wei6 Xu <wei6.xu@intel.com>
Reviewed-by: Chao B Zhang <chao.b.zhang@intel.com>
Acked-by: Hao A Wu <hao.a.wu@intel.com>
2019-06-26 15:10:40 +08:00

56 lines
1.7 KiB
C

/** @file
This file declares Capsule On Disk PPI. This PPI is used to find and load the
capsule on files that are relocated into a temp file under rootdir.
Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef __PEI_CAPSULE_ON_DISK_PPI_H__
#define __PEI_CAPSULE_ON_DISK_PPI_H__
#define EDKII_PEI_CAPSULE_ON_DISK_PPI_GUID \
{ \
0x71a9ea61, 0x5a35, 0x4a5d, {0xac, 0xef, 0x9c, 0xf8, 0x6d, 0x6d, 0x67, 0xe0 } \
}
typedef struct _EDKII_PEI_CAPSULE_ON_DISK_PPI EDKII_PEI_CAPSULE_ON_DISK_PPI;
/**
Loads a DXE capsule from some media into memory and updates the HOB table
with the DXE firmware volume information.
@param PeiServices General-purpose services that are available to every PEIM.
@param This Indicates the EFI_PEI_RECOVERY_MODULE_PPI instance.
@retval EFI_SUCCESS The capsule was loaded correctly.
@retval EFI_DEVICE_ERROR A device error occurred.
@retval EFI_NOT_FOUND A recovery DXE capsule cannot be found.
**/
typedef
EFI_STATUS
(EFIAPI *EDKII_PEI_LOAD_CAPSULE_ON_DISK)(
IN EFI_PEI_SERVICES **PeiServices,
IN EDKII_PEI_CAPSULE_ON_DISK_PPI *This
);
///
/// Finds and loads the recovery files.
///
struct _EDKII_PEI_CAPSULE_ON_DISK_PPI {
EDKII_PEI_LOAD_CAPSULE_ON_DISK LoadCapsuleOnDisk; ///< Loads a DXE binary capsule into memory.
};
extern EFI_GUID gEdkiiPeiCapsuleOnDiskPpiGuid;
#define EDKII_PEI_BOOT_IN_CAPSULE_ON_DISK_MODE_PPI \
{ \
0xb08a11e4, 0xe2b7, 0x4b75, { 0xb5, 0x15, 0xaf, 0x61, 0x6, 0x68, 0xbf, 0xd1 } \
}
extern EFI_GUID gEdkiiPeiBootInCapsuleOnDiskModePpiGuid;
#endif