Merge the PI enabling works from the branch
First round of PI enabling work: 1) PiPeiCis changes (CONST, EFI_PEI_FILE_HANDLE.. etc) 2) Make use of FirmwareVolume 2 protocol. 3) Verified for Nt32Pkg and real platform for S3. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3773 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -118,7 +118,7 @@ CoreFwVolEventProtocolNotify (
|
||||
STATIC
|
||||
EFI_DEVICE_PATH_PROTOCOL *
|
||||
CoreFvToDevicePath (
|
||||
IN EFI_FIRMWARE_VOLUME_PROTOCOL *Fv,
|
||||
IN EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv,
|
||||
IN EFI_HANDLE FvHandle,
|
||||
IN EFI_GUID *DriverName
|
||||
);
|
||||
@@ -126,7 +126,7 @@ CoreFvToDevicePath (
|
||||
STATIC
|
||||
EFI_STATUS
|
||||
CoreAddToDriverList (
|
||||
IN EFI_FIRMWARE_VOLUME_PROTOCOL *Fv,
|
||||
IN EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv,
|
||||
IN EFI_HANDLE FvHandle,
|
||||
IN EFI_GUID *DriverName
|
||||
);
|
||||
@@ -134,7 +134,7 @@ CoreAddToDriverList (
|
||||
STATIC
|
||||
EFI_STATUS
|
||||
CoreProcessFvImageFile (
|
||||
IN EFI_FIRMWARE_VOLUME_PROTOCOL *Fv,
|
||||
IN EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv,
|
||||
IN EFI_HANDLE FvHandle,
|
||||
IN EFI_GUID *DriverName
|
||||
);
|
||||
@@ -218,7 +218,7 @@ Returns:
|
||||
EFI_STATUS Status;
|
||||
EFI_SECTION_TYPE SectionType;
|
||||
UINT32 AuthenticationStatus;
|
||||
EFI_FIRMWARE_VOLUME_PROTOCOL *Fv;
|
||||
EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv;
|
||||
|
||||
|
||||
Fv = DriverEntry->Fv;
|
||||
@@ -670,7 +670,7 @@ Returns:
|
||||
STATIC
|
||||
EFI_DEVICE_PATH_PROTOCOL *
|
||||
CoreFvToDevicePath (
|
||||
IN EFI_FIRMWARE_VOLUME_PROTOCOL *Fv,
|
||||
IN EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv,
|
||||
IN EFI_HANDLE FvHandle,
|
||||
IN EFI_GUID *DriverName
|
||||
)
|
||||
@@ -727,7 +727,7 @@ Returns:
|
||||
|
||||
EFI_STATUS
|
||||
CoreAddToDriverList (
|
||||
IN EFI_FIRMWARE_VOLUME_PROTOCOL *Fv,
|
||||
IN EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv,
|
||||
IN EFI_HANDLE FvHandle,
|
||||
IN EFI_GUID *DriverName
|
||||
)
|
||||
@@ -843,7 +843,7 @@ Returns:
|
||||
|
||||
EFI_STATUS
|
||||
CoreProcessFvImageFile (
|
||||
IN EFI_FIRMWARE_VOLUME_PROTOCOL *Fv,
|
||||
IN EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv,
|
||||
IN EFI_HANDLE FvHandle,
|
||||
IN EFI_GUID *DriverName
|
||||
)
|
||||
@@ -955,7 +955,7 @@ Returns:
|
||||
EFI_STATUS Status;
|
||||
EFI_STATUS GetNextFileStatus;
|
||||
EFI_STATUS SecurityStatus;
|
||||
EFI_FIRMWARE_VOLUME_PROTOCOL *Fv;
|
||||
EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv;
|
||||
EFI_DEVICE_PATH_PROTOCOL *FvDevicePath;
|
||||
EFI_HANDLE FvHandle;
|
||||
UINTN BufferSize;
|
||||
@@ -1011,7 +1011,7 @@ Returns:
|
||||
FvIsBeingProcesssed (FvHandle);
|
||||
|
||||
|
||||
Status = CoreHandleProtocol (FvHandle, &gEfiFirmwareVolumeProtocolGuid, (VOID **)&Fv);
|
||||
Status = CoreHandleProtocol (FvHandle, &gEfiFirmwareVolume2ProtocolGuid, (VOID **)&Fv);
|
||||
if (EFI_ERROR (Status)) {
|
||||
//
|
||||
// The Handle has a FirmwareVolumeDispatch protocol and should also contiain
|
||||
@@ -1186,7 +1186,7 @@ Returns:
|
||||
--*/
|
||||
{
|
||||
mFwVolEvent = CoreCreateProtocolNotifyEvent (
|
||||
&gEfiFirmwareVolumeProtocolGuid,
|
||||
&gEfiFirmwareVolume2ProtocolGuid,
|
||||
TPL_CALLBACK,
|
||||
CoreFwVolEventProtocolNotify,
|
||||
NULL,
|
||||
|
@@ -48,7 +48,7 @@ Revision History
|
||||
#include <Protocol/RealTimeClock.h>
|
||||
#include <Guid/Apriori.h>
|
||||
#include <Protocol/WatchdogTimer.h>
|
||||
#include <Protocol/FirmwareVolume.h>
|
||||
#include <Protocol/FirmwareVolume2.h>
|
||||
#include <Protocol/MonotonicCounter.h>
|
||||
#include <Guid/DxeServices.h>
|
||||
#include <Guid/MemoryAllocationHob.h>
|
||||
@@ -155,7 +155,7 @@ typedef struct {
|
||||
EFI_HANDLE FvHandle;
|
||||
EFI_GUID FileName;
|
||||
EFI_DEVICE_PATH_PROTOCOL *FvFileDevicePath;
|
||||
EFI_FIRMWARE_VOLUME_PROTOCOL *Fv;
|
||||
EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv;
|
||||
|
||||
VOID *Depex;
|
||||
UINTN DepexSize;
|
||||
|
@@ -128,7 +128,7 @@
|
||||
gEfiDriverBindingProtocolGuid # PROTOCOL SOMETIMES_CONSUMED
|
||||
gEfiFirmwareVolumeBlockProtocolGuid # PROTOCOL ALWAYS_PRODUCED
|
||||
gEfiFirmwareVolumeDispatchProtocolGuid # PROTOCOL ALWAYS_PRODUCED
|
||||
gEfiFirmwareVolumeProtocolGuid # PROTOCOL ALWAYS_PRODUCED
|
||||
gEfiFirmwareVolume2ProtocolGuid # PROTOCOL ALWAYS_PRODUCED
|
||||
gEfiCpuArchProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||
gEfiDevicePathProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||
gEfiLoadedImageProtocolGuid # PROTOCOL ALWAYS_PRODUCED
|
||||
|
@@ -25,7 +25,7 @@ VOID *gEfiFwVolBlockNotifyReg;
|
||||
EFI_EVENT gEfiFwVolBlockEvent;
|
||||
|
||||
FV_DEVICE mFvDevice = {
|
||||
FV_DEVICE_SIGNATURE,
|
||||
FV2_DEVICE_SIGNATURE,
|
||||
NULL,
|
||||
NULL,
|
||||
{
|
||||
@@ -35,7 +35,10 @@ FV_DEVICE mFvDevice = {
|
||||
FvReadFileSection,
|
||||
FvWriteFile,
|
||||
FvGetNextFile,
|
||||
KEYSIZE
|
||||
KEYSIZE,
|
||||
NULL,
|
||||
FvGetVolumeInfo,
|
||||
FvSetVolumeInfo
|
||||
},
|
||||
NULL,
|
||||
NULL,
|
||||
@@ -389,8 +392,8 @@ NotifyFwVolBlock (
|
||||
Routine Description:
|
||||
This notification function is invoked when an instance of the
|
||||
EFI_FW_VOLUME_BLOCK_PROTOCOL is produced. It layers an instance of the
|
||||
EFI_FIRMWARE_VOLUME_PROTOCOL on the same handle. This is the function where
|
||||
the actual initialization of the EFI_FIRMWARE_VOLUME_PROTOCOL is done.
|
||||
EFI_FIRMWARE_VOLUME2_PROTOCOL on the same handle. This is the function where
|
||||
the actual initialization of the EFI_FIRMWARE_VOLUME2_PROTOCOL is done.
|
||||
|
||||
Arguments:
|
||||
Event - The event that occured
|
||||
@@ -406,7 +409,7 @@ Returns:
|
||||
EFI_STATUS Status;
|
||||
UINTN BufferSize;
|
||||
EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *Fvb;
|
||||
EFI_FIRMWARE_VOLUME_PROTOCOL *Fv;
|
||||
EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv;
|
||||
FV_DEVICE *FvDevice;
|
||||
EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader;
|
||||
//
|
||||
@@ -468,13 +471,13 @@ Returns:
|
||||
//
|
||||
// Check if there is an FV protocol already installed in that handle
|
||||
//
|
||||
Status = CoreHandleProtocol (Handle, &gEfiFirmwareVolumeProtocolGuid, (VOID **)&Fv);
|
||||
Status = CoreHandleProtocol (Handle, &gEfiFirmwareVolume2ProtocolGuid, (VOID **)&Fv);
|
||||
if (!EFI_ERROR (Status)) {
|
||||
//
|
||||
// Update Fv to use a new Fvb
|
||||
//
|
||||
FvDevice = _CR (Fv, FV_DEVICE, Fv);
|
||||
if (FvDevice->Signature == FV_DEVICE_SIGNATURE) {
|
||||
if (FvDevice->Signature == FV2_DEVICE_SIGNATURE) {
|
||||
//
|
||||
// Only write into our device structure if it's our device structure
|
||||
//
|
||||
@@ -500,7 +503,7 @@ Returns:
|
||||
//
|
||||
Status = CoreInstallProtocolInterface (
|
||||
&Handle,
|
||||
&gEfiFirmwareVolumeProtocolGuid,
|
||||
&gEfiFirmwareVolume2ProtocolGuid,
|
||||
EFI_NATIVE_INTERFACE,
|
||||
&FvDevice->Fv
|
||||
);
|
||||
|
@@ -24,8 +24,8 @@ Abstract:
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvGetVolumeAttributes (
|
||||
IN EFI_FIRMWARE_VOLUME_PROTOCOL *This,
|
||||
OUT EFI_FV_ATTRIBUTES *Attributes
|
||||
IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,
|
||||
OUT EFI_FV_ATTRIBUTES *Attributes
|
||||
)
|
||||
/*++
|
||||
|
||||
@@ -76,8 +76,8 @@ Returns:
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSetVolumeAttributes (
|
||||
IN EFI_FIRMWARE_VOLUME_PROTOCOL *This,
|
||||
IN OUT EFI_FV_ATTRIBUTES *Attributes
|
||||
IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,
|
||||
IN OUT EFI_FV_ATTRIBUTES *Attributes
|
||||
)
|
||||
/*++
|
||||
|
||||
@@ -97,3 +97,61 @@ Returns:
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvGetVolumeInfo (
|
||||
IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,
|
||||
IN CONST EFI_GUID *InformationType,
|
||||
IN OUT UINTN *BufferSize,
|
||||
OUT VOID *Buffer
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Return information of type InformationType for the requested firmware
|
||||
volume.
|
||||
|
||||
Arguments:
|
||||
This - Pointer to EFI_FIRMWARE_VOLUME2_PROTOCOL.
|
||||
InformationType - InformationType for requested.
|
||||
BufferSize - On input, size of Buffer.On output, the amount of
|
||||
data returned in Buffer.
|
||||
Buffer - A poniter to the data buffer to return.
|
||||
Returns:
|
||||
EFI_SUCCESS - Successfully got volume Information.
|
||||
|
||||
--*/
|
||||
{
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSetVolumeInfo (
|
||||
IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,
|
||||
IN CONST EFI_GUID *InformationType,
|
||||
IN UINTN BufferSize,
|
||||
IN CONST VOID *Buffer
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Set information of type InformationType for the requested firmware
|
||||
volume.
|
||||
|
||||
Arguments:
|
||||
This - Pointer to EFI_FIRMWARE_VOLUME2_PROTOCOL.
|
||||
InformationType - InformationType for requested.
|
||||
BufferSize - On input, size of Buffer.On output, the amount of
|
||||
data returned in Buffer.
|
||||
Buffer - A poniter to the data buffer to return.
|
||||
Returns:
|
||||
EFI_SUCCESS - Successfully set volume Information.
|
||||
|
||||
--*/
|
||||
{
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
|
||||
|
@@ -70,12 +70,12 @@ FfsAttributes2FvFileAttributes (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvGetNextFile (
|
||||
IN EFI_FIRMWARE_VOLUME_PROTOCOL *This,
|
||||
IN OUT VOID *Key,
|
||||
IN OUT EFI_FV_FILETYPE *FileType,
|
||||
IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,
|
||||
IN OUT VOID *Key,
|
||||
IN OUT EFI_FV_FILETYPE *FileType,
|
||||
OUT EFI_GUID *NameGuid,
|
||||
OUT EFI_FV_FILE_ATTRIBUTES *Attributes,
|
||||
OUT UINTN *Size
|
||||
OUT UINTN *Size
|
||||
)
|
||||
/*++
|
||||
|
||||
@@ -140,7 +140,7 @@ Returns:
|
||||
//
|
||||
// Check if read operation is enabled
|
||||
//
|
||||
if ((FvAttributes & EFI_FV_READ_STATUS) == 0) {
|
||||
if ((FvAttributes & EFI_FV2_READ_STATUS) == 0) {
|
||||
return EFI_ACCESS_DENIED;
|
||||
}
|
||||
|
||||
@@ -227,13 +227,13 @@ Returns:
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvReadFile (
|
||||
IN EFI_FIRMWARE_VOLUME_PROTOCOL *This,
|
||||
IN EFI_GUID *NameGuid,
|
||||
IN OUT VOID **Buffer,
|
||||
IN OUT UINTN *BufferSize,
|
||||
OUT EFI_FV_FILETYPE *FoundType,
|
||||
OUT EFI_FV_FILE_ATTRIBUTES *FileAttributes,
|
||||
OUT UINT32 *AuthenticationStatus
|
||||
IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,
|
||||
IN CONST EFI_GUID *NameGuid,
|
||||
IN OUT VOID **Buffer,
|
||||
IN OUT UINTN *BufferSize,
|
||||
OUT EFI_FV_FILETYPE *FoundType,
|
||||
OUT EFI_FV_FILE_ATTRIBUTES *FileAttributes,
|
||||
OUT UINT32 *AuthenticationStatus
|
||||
)
|
||||
/*++
|
||||
|
||||
@@ -370,13 +370,13 @@ Returns:
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvReadFileSection (
|
||||
IN EFI_FIRMWARE_VOLUME_PROTOCOL *This,
|
||||
IN EFI_GUID *NameGuid,
|
||||
IN EFI_SECTION_TYPE SectionType,
|
||||
IN UINTN SectionInstance,
|
||||
IN OUT VOID **Buffer,
|
||||
IN OUT UINTN *BufferSize,
|
||||
OUT UINT32 *AuthenticationStatus
|
||||
IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,
|
||||
IN CONST EFI_GUID *NameGuid,
|
||||
IN EFI_SECTION_TYPE SectionType,
|
||||
IN UINTN SectionInstance,
|
||||
IN OUT VOID **Buffer,
|
||||
IN OUT UINTN *BufferSize,
|
||||
OUT UINT32 *AuthenticationStatus
|
||||
)
|
||||
/*++
|
||||
|
||||
|
@@ -25,10 +25,10 @@ Abstract:
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvWriteFile (
|
||||
IN EFI_FIRMWARE_VOLUME_PROTOCOL *This,
|
||||
IN UINT32 NumberOfFiles,
|
||||
IN EFI_FV_WRITE_POLICY WritePolicy,
|
||||
IN EFI_FV_WRITE_FILE_DATA *FileData
|
||||
IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,
|
||||
IN UINT32 NumberOfFiles,
|
||||
IN EFI_FV_WRITE_POLICY WritePolicy,
|
||||
IN EFI_FV_WRITE_FILE_DATA *FileData
|
||||
)
|
||||
/*++
|
||||
|
||||
|
@@ -586,7 +586,7 @@ Returns:
|
||||
//
|
||||
if (!EFI_ERROR(Status)) {
|
||||
Ptr = NULL;
|
||||
Status = CoreHandleProtocol (*FVProtocolHandle, &gEfiFirmwareVolumeProtocolGuid, (VOID **)&Ptr);
|
||||
Status = CoreHandleProtocol (*FVProtocolHandle, &gEfiFirmwareVolume2ProtocolGuid, (VOID **)&Ptr);
|
||||
if (EFI_ERROR(Status) || (Ptr == NULL)) {
|
||||
return EFI_VOLUME_CORRUPTED;
|
||||
}
|
||||
|
@@ -24,6 +24,8 @@ Abstract:
|
||||
#define __FWVOL_H
|
||||
|
||||
|
||||
#define FV2_DEVICE_SIGNATURE EFI_SIGNATURE_32 ('_', 'F', 'V', '2')
|
||||
|
||||
//
|
||||
// Used to track all non-deleted files
|
||||
//
|
||||
@@ -38,7 +40,7 @@ typedef struct {
|
||||
UINTN Signature;
|
||||
EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *Fvb;
|
||||
EFI_HANDLE Handle;
|
||||
EFI_FIRMWARE_VOLUME_PROTOCOL Fv;
|
||||
EFI_FIRMWARE_VOLUME2_PROTOCOL Fv;
|
||||
|
||||
EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader;
|
||||
UINT8 *CachedFv;
|
||||
@@ -51,14 +53,14 @@ typedef struct {
|
||||
UINT8 ErasePolarity;
|
||||
} FV_DEVICE;
|
||||
|
||||
#define FV_DEVICE_FROM_THIS(a) CR(a, FV_DEVICE, Fv, FV_DEVICE_SIGNATURE)
|
||||
#define FV_DEVICE_FROM_THIS(a) CR(a, FV_DEVICE, Fv, FV2_DEVICE_SIGNATURE)
|
||||
|
||||
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvGetVolumeAttributes (
|
||||
IN EFI_FIRMWARE_VOLUME_PROTOCOL *This,
|
||||
OUT EFI_FV_ATTRIBUTES *Attributes
|
||||
IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,
|
||||
OUT EFI_FV_ATTRIBUTES *Attributes
|
||||
)
|
||||
/*++
|
||||
|
||||
@@ -79,8 +81,8 @@ Returns:
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSetVolumeAttributes (
|
||||
IN EFI_FIRMWARE_VOLUME_PROTOCOL *This,
|
||||
IN OUT EFI_FV_ATTRIBUTES *Attributes
|
||||
IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,
|
||||
IN OUT EFI_FV_ATTRIBUTES *Attributes
|
||||
)
|
||||
/*++
|
||||
|
||||
@@ -100,12 +102,12 @@ Returns:
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvGetNextFile (
|
||||
IN EFI_FIRMWARE_VOLUME_PROTOCOL *This,
|
||||
IN OUT VOID *Key,
|
||||
IN OUT EFI_FV_FILETYPE *FileType,
|
||||
OUT EFI_GUID *NameGuid,
|
||||
OUT EFI_FV_FILE_ATTRIBUTES *Attributes,
|
||||
OUT UINTN *Size
|
||||
IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,
|
||||
IN OUT VOID *Key,
|
||||
IN OUT EFI_FV_FILETYPE *FileType,
|
||||
OUT EFI_GUID *NameGuid,
|
||||
OUT EFI_FV_FILE_ATTRIBUTES *Attributes,
|
||||
OUT UINTN *Size
|
||||
)
|
||||
/*++
|
||||
|
||||
@@ -156,13 +158,13 @@ Returns:
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvReadFile (
|
||||
IN EFI_FIRMWARE_VOLUME_PROTOCOL *This,
|
||||
IN EFI_GUID *NameGuid,
|
||||
IN OUT VOID **Buffer,
|
||||
IN OUT UINTN *BufferSize,
|
||||
OUT EFI_FV_FILETYPE *FoundType,
|
||||
OUT EFI_FV_FILE_ATTRIBUTES *FileAttributes,
|
||||
OUT UINT32 *AuthenticationStatus
|
||||
IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,
|
||||
IN CONST EFI_GUID *NameGuid,
|
||||
IN OUT VOID **Buffer,
|
||||
IN OUT UINTN *BufferSize,
|
||||
OUT EFI_FV_FILETYPE *FoundType,
|
||||
OUT EFI_FV_FILE_ATTRIBUTES *FileAttributes,
|
||||
OUT UINT32 *AuthenticationStatus
|
||||
)
|
||||
/*++
|
||||
|
||||
@@ -207,13 +209,13 @@ Returns:
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvReadFileSection (
|
||||
IN EFI_FIRMWARE_VOLUME_PROTOCOL *This,
|
||||
IN EFI_GUID *NameGuid,
|
||||
IN EFI_SECTION_TYPE SectionType,
|
||||
IN UINTN SectionInstance,
|
||||
IN OUT VOID **Buffer,
|
||||
IN OUT UINTN *BufferSize,
|
||||
OUT UINT32 *AuthenticationStatus
|
||||
IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,
|
||||
IN CONST EFI_GUID *NameGuid,
|
||||
IN EFI_SECTION_TYPE SectionType,
|
||||
IN UINTN SectionInstance,
|
||||
IN OUT VOID **Buffer,
|
||||
IN OUT UINTN *BufferSize,
|
||||
OUT UINT32 *AuthenticationStatus
|
||||
)
|
||||
/*++
|
||||
|
||||
@@ -248,10 +250,10 @@ FvReadFileSection (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvWriteFile (
|
||||
IN EFI_FIRMWARE_VOLUME_PROTOCOL *This,
|
||||
IN UINT32 NumberOfFiles,
|
||||
IN EFI_FV_WRITE_POLICY WritePolicy,
|
||||
IN EFI_FV_WRITE_FILE_DATA *FileData
|
||||
IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,
|
||||
IN UINT32 NumberOfFiles,
|
||||
IN EFI_FV_WRITE_POLICY WritePolicy,
|
||||
IN EFI_FV_WRITE_FILE_DATA *FileData
|
||||
)
|
||||
/*++
|
||||
|
||||
@@ -278,7 +280,58 @@ FvWriteFile (
|
||||
--*/
|
||||
;
|
||||
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvGetVolumeInfo (
|
||||
IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,
|
||||
IN CONST EFI_GUID *InformationType,
|
||||
IN OUT UINTN *BufferSize,
|
||||
OUT VOID *Buffer
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Return information of type InformationType for the requested firmware
|
||||
volume.
|
||||
|
||||
Arguments:
|
||||
This - Pointer to EFI_FIRMWARE_VOLUME2_PROTOCOL.
|
||||
InformationType - InformationType for requested.
|
||||
BufferSize - On input, size of Buffer.On output, the amount of
|
||||
data returned in Buffer.
|
||||
Buffer - A poniter to the data buffer to return.
|
||||
Returns:
|
||||
EFI_SUCCESS - Successfully got volume Information.
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSetVolumeInfo (
|
||||
IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,
|
||||
IN CONST EFI_GUID *InformationType,
|
||||
IN UINTN BufferSize,
|
||||
IN CONST VOID *Buffer
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Set information of type InformationType for the requested firmware
|
||||
volume.
|
||||
|
||||
Arguments:
|
||||
This - Pointer to EFI_FIRMWARE_VOLUME2_PROTOCOL.
|
||||
InformationType - InformationType for requested.
|
||||
BufferSize - On input, size of Buffer.On output, the amount of
|
||||
data returned in Buffer.
|
||||
Buffer - A poniter to the data buffer to return.
|
||||
Returns:
|
||||
EFI_SUCCESS - Successfully set volume Information.
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
//
|
||||
//Internal functions
|
||||
|
@@ -74,7 +74,7 @@ Returns:
|
||||
EFI_FILE_HANDLE FileHandle;
|
||||
EFI_FILE_HANDLE LastHandle;
|
||||
EFI_LOAD_FILE_PROTOCOL *LoadFile;
|
||||
EFI_FIRMWARE_VOLUME_PROTOCOL *FwVol;
|
||||
EFI_FIRMWARE_VOLUME2_PROTOCOL *FwVol;
|
||||
EFI_SECTION_TYPE SectionType;
|
||||
UINT8 *Pe32Buffer;
|
||||
UINTN Pe32BufferSize;
|
||||
@@ -115,7 +115,7 @@ Returns:
|
||||
//
|
||||
FwVolFilePathNode = (MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *)FilePath;
|
||||
Status = CoreDevicePathToInterface (
|
||||
&gEfiFirmwareVolumeProtocolGuid,
|
||||
&gEfiFirmwareVolume2ProtocolGuid,
|
||||
(EFI_DEVICE_PATH_PROTOCOL **)&FwVolFilePathNode,
|
||||
(VOID*)&FwVol,
|
||||
DeviceHandle
|
||||
|
Reference in New Issue
Block a user