mirror of https://github.com/acidanthera/audk.git
Move Crc32GuidedSectionExtraction from Protocol to Guid directory
Move DiskInfo protocol from MdeModulePkg to IntelFrameworkModulePkg Retire unused FvbExtension protocol. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7638 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
0a6f71704a
commit
76f1dde2c4
|
@ -2,11 +2,10 @@
|
||||||
|
|
||||||
This file defines a group of guids to specify the different
|
This file defines a group of guids to specify the different
|
||||||
encapsulation scheme for the guided section.
|
encapsulation scheme for the guided section.
|
||||||
The related definitions is in UEFI GuidedSectionExtraction protocol.
|
|
||||||
|
|
||||||
Now, only one guid is defined for CRC32 encapsulation scheme.
|
Now, only one guid is defined for CRC32 encapsulation scheme.
|
||||||
|
|
||||||
Copyright (c) 2006 - 2008, Intel Corporation
|
Copyright (c) 2006 - 2009, Intel Corporation
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -17,23 +16,17 @@
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
#ifndef __CRC32_GUIDED_SECTION_EXTRACTION_PROTOCOL_H__
|
#ifndef __CRC32_GUIDED_SECTION_EXTRACTION_H__
|
||||||
#define __CRC32_GUIDED_SECTION_EXTRACTION_PROTOCOL_H__
|
#define __CRC32_GUIDED_SECTION_EXTRACTION_H__
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Protocol GUID definition. Each GUIDed section extraction protocol has the
|
// GUID definition. Each GUIDed section extraction protocol has the
|
||||||
// same interface but with different GUID. All the GUIDs is defined here.
|
// same interface but with different GUID. All the GUIDs is defined here.
|
||||||
// May add more GUIDs here in future.
|
// May add more GUIDs here in future.
|
||||||
//
|
//
|
||||||
#define EFI_CRC32_GUIDED_SECTION_EXTRACTION_PROTOCOL_GUID \
|
#define EFI_CRC32_GUIDED_SECTION_EXTRACTION_GUID \
|
||||||
{ 0xFC1BCDB0, 0x7D31, 0x49aa, {0x93, 0x6A, 0xA4, 0x60, 0x0D, 0x9D, 0xD0, 0x83 } }
|
{ 0xFC1BCDB0, 0x7D31, 0x49aa, {0x93, 0x6A, 0xA4, 0x60, 0x0D, 0x9D, 0xD0, 0x83 } }
|
||||||
|
|
||||||
//
|
extern EFI_GUID gEfiCrc32GuidedSectionExtractionGuid;
|
||||||
// The data structures are the same to UEFI GuidedSectionExtraction protocol.
|
|
||||||
//
|
|
||||||
#include <Protocol/GuidedSectionExtraction.h>
|
|
||||||
|
|
||||||
extern EFI_GUID gEfiCrc32GuidedSectionExtractionProtocolGuid;
|
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -276,36 +276,4 @@ EfiFvbGetBlockSize (
|
||||||
OUT UINTN *NumOfBlocks
|
OUT UINTN *NumOfBlocks
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Erases and initializes a specified range of a firmware volume.
|
|
||||||
|
|
||||||
The EfiFvbEraseCustomBlockRange() function erases the specified range in the firmware
|
|
||||||
volume index by Instance. If Instance is larger than the max FVB number, StartLba or
|
|
||||||
LastLba index is larger than the last block of the firmware volume, StartLba > LastLba
|
|
||||||
or StartLba equal to LastLba but OffsetStartLba > OffsetLastLba, this function return
|
|
||||||
the status code EFI_INVALID_PARAMETER.
|
|
||||||
|
|
||||||
@param[in] Instance The FV instance to be operated.
|
|
||||||
@param[in] StartLba The starting logical block index to be erased.
|
|
||||||
@param[in] OffsetStartLba Offset into the starting block at which to
|
|
||||||
begin erasing.
|
|
||||||
@param[in] LastLba The last logical block index to be erased.
|
|
||||||
@param[in] OffsetLastLba Offset into the last block at which to end erasing.
|
|
||||||
|
|
||||||
@retval EFI_EFI_SUCCESS Successfully erase custom block range
|
|
||||||
@retval EFI_INVALID_PARAMETER Invalid parameter. Instance is larger than the max FVB number.
|
|
||||||
@retval EFI_UNSUPPORTED Firmware volume block device has no this capability.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
EfiFvbEraseCustomBlockRange (
|
|
||||||
IN UINTN Instance,
|
|
||||||
IN EFI_LBA StartLba,
|
|
||||||
IN UINTN OffsetStartLba,
|
|
||||||
IN EFI_LBA LastLba,
|
|
||||||
IN UINTN OffsetLastLba
|
|
||||||
);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,158 +0,0 @@
|
||||||
/** @file
|
|
||||||
Disk Info protocol is used to export Inquiry Data for a drive.
|
|
||||||
It supports low level formating of drives in a DOS compatible manner.
|
|
||||||
|
|
||||||
Copyright (c) 2006 - 2008, Intel Corporation. <BR>
|
|
||||||
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.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#ifndef __DISK_INFO_H__
|
|
||||||
#define __DISK_INFO_H__
|
|
||||||
|
|
||||||
#define EFI_DISK_INFO_PROTOCOL_GUID \
|
|
||||||
{ \
|
|
||||||
0xd432a67f, 0x14dc, 0x484b, {0xb3, 0xbb, 0x3f, 0x2, 0x91, 0x84, 0x93, 0x27 } \
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Forward reference for pure ANSI compatability
|
|
||||||
//
|
|
||||||
typedef struct _EFI_DISK_INFO_PROTOCOL EFI_DISK_INFO_PROTOCOL;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Return the results of the Inquiry command to a drive in InquiryData.
|
|
||||||
Data format of Inquiry data is defined by the Interface GUID.
|
|
||||||
|
|
||||||
@param This Protocol instance pointer.
|
|
||||||
@param InquiryData Results of Inquiry command to device
|
|
||||||
@param InquiryDataSize Size of InquiryData in bytes.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS InquiryData valid
|
|
||||||
@retval EFI_NOT_FOUND Device does not support this data class
|
|
||||||
@retval EFI_DEVICE_ERROR Error reading InquiryData from device
|
|
||||||
@retval EFI_BUFFER_TOO_SMALL IntquiryDataSize not big enough
|
|
||||||
|
|
||||||
**/
|
|
||||||
typedef
|
|
||||||
EFI_STATUS
|
|
||||||
(EFIAPI *EFI_DISK_INFO_INQUIRY)(
|
|
||||||
IN EFI_DISK_INFO_PROTOCOL * This,
|
|
||||||
IN OUT VOID *InquiryData,
|
|
||||||
IN OUT UINT32 *InquiryDataSize
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Return the results of the Identify command to a drive in IdentifyData.
|
|
||||||
Data format of Identify data is defined by the Interface GUID.
|
|
||||||
|
|
||||||
@param This Protocol instance pointer.
|
|
||||||
@param IdentifyData Results of Identify command to device
|
|
||||||
@param IdentifyDataSize Size of IdentifyData in bytes.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS IdentifyData valid
|
|
||||||
@retval EFI_NOT_FOUND Device does not support this data class
|
|
||||||
@retval EFI_DEVICE_ERROR Error reading IdentifyData from device
|
|
||||||
@retval EFI_BUFFER_TOO_SMALL IdentifyDataSize not big enough
|
|
||||||
|
|
||||||
**/
|
|
||||||
typedef
|
|
||||||
EFI_STATUS
|
|
||||||
(EFIAPI *EFI_DISK_INFO_IDENTIFY)(
|
|
||||||
IN EFI_DISK_INFO_PROTOCOL * This,
|
|
||||||
IN OUT VOID *IdentifyData,
|
|
||||||
IN OUT UINT32 *IdentifyDataSize
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Return the results of the Request Sense command to a drive in SenseData.
|
|
||||||
Data format of Sense data is defined by the Interface GUID.
|
|
||||||
|
|
||||||
@param This Protocol instance pointer.
|
|
||||||
@param SenseData Results of Request Sense command to device
|
|
||||||
@param SenseDataSize Size of SenseData in bytes.
|
|
||||||
@param SenseDataNumber Type of SenseData
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS InquiryData valid
|
|
||||||
@retval EFI_NOT_FOUND Device does not support this data class
|
|
||||||
@retval EFI_DEVICE_ERROR Error reading InquiryData from device
|
|
||||||
@retval EFI_BUFFER_TOO_SMALL SenseDataSize not big enough
|
|
||||||
|
|
||||||
**/
|
|
||||||
typedef
|
|
||||||
EFI_STATUS
|
|
||||||
(EFIAPI *EFI_DISK_INFO_SENSE_DATA)(
|
|
||||||
IN EFI_DISK_INFO_PROTOCOL * This,
|
|
||||||
IN OUT VOID *SenseData,
|
|
||||||
IN OUT UINT32 *SenseDataSize,
|
|
||||||
OUT UINT8 *SenseDataNumber
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
Return the IDE device information.
|
|
||||||
|
|
||||||
@param This Protocol instance pointer.
|
|
||||||
@param IdeChannel Primary or Secondary
|
|
||||||
@param IdeDevice Master or Slave
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS IdeChannel and IdeDevice are valid
|
|
||||||
@retval EFI_UNSUPPORTED This is not an IDE device
|
|
||||||
|
|
||||||
**/
|
|
||||||
typedef
|
|
||||||
EFI_STATUS
|
|
||||||
(EFIAPI *EFI_DISK_INFO_WHICH_IDE)(
|
|
||||||
IN EFI_DISK_INFO_PROTOCOL * This,
|
|
||||||
OUT UINT32 *IdeChannel,
|
|
||||||
OUT UINT32 *IdeDevice
|
|
||||||
);
|
|
||||||
|
|
||||||
//
|
|
||||||
// GUIDs for EFI_DISK_INFO_PROTOCOL.Interface. Defines the format of the
|
|
||||||
// buffers returned by member functions.
|
|
||||||
//
|
|
||||||
#define EFI_DISK_INFO_IDE_INTERFACE_GUID \
|
|
||||||
{ \
|
|
||||||
0x5e948fe3, 0x26d3, 0x42b5, {0xaf, 0x17, 0x61, 0x2, 0x87, 0x18, 0x8d, 0xec } \
|
|
||||||
}
|
|
||||||
extern EFI_GUID gEfiDiskInfoIdeInterfaceGuid;
|
|
||||||
|
|
||||||
#define EFI_DISK_INFO_SCSI_INTERFACE_GUID \
|
|
||||||
{ \
|
|
||||||
0x8f74baa, 0xea36, 0x41d9, {0x95, 0x21, 0x21, 0xa7, 0xf, 0x87, 0x80, 0xbc } \
|
|
||||||
}
|
|
||||||
extern EFI_GUID gEfiDiskInfoScsiInterfaceGuid;
|
|
||||||
|
|
||||||
#define EFI_DISK_INFO_USB_INTERFACE_GUID \
|
|
||||||
{ \
|
|
||||||
0xcb871572, 0xc11a, 0x47b5, {0xb4, 0x92, 0x67, 0x5e, 0xaf, 0xa7, 0x77, 0x27 } \
|
|
||||||
}
|
|
||||||
extern EFI_GUID gEfiDiskInfoUsbInterfaceGuid;
|
|
||||||
|
|
||||||
#define EFI_DISK_INFO_AHCI_INTERFACE_GUID \
|
|
||||||
{ \
|
|
||||||
0x9e498932, 0x4abc, 0x45af, {0xa3, 0x4d, 0x2, 0x47, 0x78, 0x7b, 0xe7, 0xc6} \
|
|
||||||
}
|
|
||||||
extern EFI_GUID gEfiDiskInfoAhciInterfaceGuid;
|
|
||||||
|
|
||||||
struct _EFI_DISK_INFO_PROTOCOL {
|
|
||||||
EFI_GUID Interface; ///> The format of the buffers returned by member functions.
|
|
||||||
EFI_DISK_INFO_INQUIRY Inquiry;
|
|
||||||
EFI_DISK_INFO_IDENTIFY Identify;
|
|
||||||
EFI_DISK_INFO_SENSE_DATA SenseData;
|
|
||||||
EFI_DISK_INFO_WHICH_IDE WhichIde;
|
|
||||||
};
|
|
||||||
|
|
||||||
extern EFI_GUID gEfiDiskInfoProtocolGuid;
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
|
@ -1,63 +0,0 @@
|
||||||
/** @file
|
|
||||||
|
|
||||||
FVB Extension protocol provides one extended service to FVB protocol defined in PI specification.
|
|
||||||
This service can erase the specified range of a firmware volume block.
|
|
||||||
|
|
||||||
Copyright (c) 2006 - 2008, 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.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#ifndef __FVB_EXTENSION_H__
|
|
||||||
#define __FVB_EXTENSION_H__
|
|
||||||
|
|
||||||
#define EFI_FVB_EXTENSION_PROTOCOL_GUID \
|
|
||||||
{0x53a4c71b, 0xb581, 0x4170, {0x91, 0xb3, 0x8d, 0xb8, 0x7a, 0x4b, 0x5c, 0x46 } }
|
|
||||||
|
|
||||||
typedef struct _EFI_FVB_EXTENSION_PROTOCOL EFI_FVB_EXTENSION_PROTOCOL;
|
|
||||||
|
|
||||||
//
|
|
||||||
// FVB Extension Function Prototypes
|
|
||||||
//
|
|
||||||
/**
|
|
||||||
Erases and initializes a specified range of a firmware volume block.
|
|
||||||
|
|
||||||
@param[in] This Pointer to the FVB Extension protocol instance
|
|
||||||
@param[in] StartLba The starting logical block index to be erased
|
|
||||||
@param[in] OffsetStartLba Offset into the starting block at which to begin erasing
|
|
||||||
@param[in] LastLba The last logical block index to be erased
|
|
||||||
@param[in] OffsetLastLba Offset into the last block at which to end erasing
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS The specified range was erased successfully
|
|
||||||
@retval EFI_ACCESS_DENIED The firmware volume block is in the WriteDisabled state
|
|
||||||
@retval EFI_DEVICE_ERROR The block device is not functioning correctly and
|
|
||||||
could not be written. Firmware device may have been
|
|
||||||
partially erased.
|
|
||||||
**/
|
|
||||||
typedef
|
|
||||||
EFI_STATUS
|
|
||||||
(EFIAPI * EFI_FV_ERASE_CUSTOM_BLOCK)(
|
|
||||||
IN EFI_FVB_EXTENSION_PROTOCOL *This,
|
|
||||||
IN EFI_LBA StartLba,
|
|
||||||
IN UINTN OffsetStartLba,
|
|
||||||
IN EFI_LBA LastLba,
|
|
||||||
IN UINTN OffsetLastLba
|
|
||||||
);
|
|
||||||
|
|
||||||
//
|
|
||||||
// FVB Extension PROTOCOL
|
|
||||||
//
|
|
||||||
struct _EFI_FVB_EXTENSION_PROTOCOL {
|
|
||||||
EFI_FV_ERASE_CUSTOM_BLOCK EraseFvbCustomBlock;
|
|
||||||
};
|
|
||||||
|
|
||||||
extern EFI_GUID gEfiFvbExtensionProtocolGuid;
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
#include <PiDxe.h>
|
#include <PiDxe.h>
|
||||||
#include <Protocol/Crc32GuidedSectionExtraction.h>
|
#include <Guid/Crc32GuidedSectionExtraction.h>
|
||||||
#include <Protocol/SecurityPolicy.h>
|
#include <Protocol/SecurityPolicy.h>
|
||||||
#include <Library/ExtractGuidedSectionLib.h>
|
#include <Library/ExtractGuidedSectionLib.h>
|
||||||
#include <Library/DebugLib.h>
|
#include <Library/DebugLib.h>
|
||||||
|
@ -62,7 +62,7 @@ Crc32GuidedSectionGetInfo (
|
||||||
// Check whether the input guid section is recognized.
|
// Check whether the input guid section is recognized.
|
||||||
//
|
//
|
||||||
if (!CompareGuid (
|
if (!CompareGuid (
|
||||||
&gEfiCrc32GuidedSectionExtractionProtocolGuid,
|
&gEfiCrc32GuidedSectionExtractionGuid,
|
||||||
&(((EFI_GUID_DEFINED_SECTION *) InputSection)->SectionDefinitionGuid))) {
|
&(((EFI_GUID_DEFINED_SECTION *) InputSection)->SectionDefinitionGuid))) {
|
||||||
return EFI_INVALID_PARAMETER;
|
return EFI_INVALID_PARAMETER;
|
||||||
}
|
}
|
||||||
|
@ -113,7 +113,7 @@ Crc32GuidedSectionHandler (
|
||||||
// Check whether the input guid section is recognized.
|
// Check whether the input guid section is recognized.
|
||||||
//
|
//
|
||||||
if (!CompareGuid (
|
if (!CompareGuid (
|
||||||
&gEfiCrc32GuidedSectionExtractionProtocolGuid,
|
&gEfiCrc32GuidedSectionExtractionGuid,
|
||||||
&(((EFI_GUID_DEFINED_SECTION *) InputSection)->SectionDefinitionGuid))) {
|
&(((EFI_GUID_DEFINED_SECTION *) InputSection)->SectionDefinitionGuid))) {
|
||||||
return EFI_INVALID_PARAMETER;
|
return EFI_INVALID_PARAMETER;
|
||||||
}
|
}
|
||||||
|
@ -185,7 +185,7 @@ DxeCrc32GuidedSectionExtractLibConstructor (
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return ExtractGuidedSectionRegisterHandlers (
|
return ExtractGuidedSectionRegisterHandlers (
|
||||||
&gEfiCrc32GuidedSectionExtractionProtocolGuid,
|
&gEfiCrc32GuidedSectionExtractionGuid,
|
||||||
Crc32GuidedSectionGetInfo,
|
Crc32GuidedSectionGetInfo,
|
||||||
Crc32GuidedSectionHandler
|
Crc32GuidedSectionHandler
|
||||||
);
|
);
|
||||||
|
|
|
@ -44,7 +44,9 @@
|
||||||
DebugLib
|
DebugLib
|
||||||
BaseMemoryLib
|
BaseMemoryLib
|
||||||
|
|
||||||
|
[Guids]
|
||||||
|
gEfiCrc32GuidedSectionExtractionGuid ## CONSUMES ## GUID
|
||||||
|
|
||||||
[Protocols]
|
[Protocols]
|
||||||
gEfiCrc32GuidedSectionExtractionProtocolGuid ## PRODUCED
|
|
||||||
gEfiSecurityPolicyProtocolGuid ## SOMETIMES_CONSUMED (Set platform override AUTH status if exist)
|
gEfiSecurityPolicyProtocolGuid ## SOMETIMES_CONSUMED (Set platform override AUTH status if exist)
|
||||||
|
|
|
@ -51,7 +51,6 @@
|
||||||
|
|
||||||
[Protocols]
|
[Protocols]
|
||||||
gEfiFirmwareVolumeBlockProtocolGuid ## NOTIFY
|
gEfiFirmwareVolumeBlockProtocolGuid ## NOTIFY
|
||||||
gEfiFvbExtensionProtocolGuid ## CONSUMES
|
|
||||||
|
|
||||||
[Guids]
|
[Guids]
|
||||||
gEfiEventVirtualAddressChangeGuid ## PRODUCES
|
gEfiEventVirtualAddressChangeGuid ## PRODUCES
|
||||||
|
|
|
@ -197,15 +197,6 @@ FvbNotificationEvent (
|
||||||
);
|
);
|
||||||
ASSERT_EFI_ERROR (Status);
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
Status = gBS->HandleProtocol (
|
|
||||||
Handle,
|
|
||||||
&gEfiFvbExtensionProtocolGuid,
|
|
||||||
(VOID **) &mFvbEntry[UpdateIndex].FvbExtension
|
|
||||||
);
|
|
||||||
if (Status != EFI_SUCCESS) {
|
|
||||||
mFvbEntry[UpdateIndex].FvbExtension = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Check the FVB can be accessed in RUNTIME, The FVBs in FVB handle list come from two ways:
|
// Check the FVB can be accessed in RUNTIME, The FVBs in FVB handle list come from two ways:
|
||||||
// 1) Dxe Core. (FVB information is transferred from FV HOB). 2) FVB driver. The FVB produced
|
// 1) Dxe Core. (FVB information is transferred from FV HOB). 2) FVB driver. The FVB produced
|
||||||
|
@ -251,11 +242,6 @@ FvbVirtualAddressChangeNotifyEvent (
|
||||||
EfiConvertPointer (0x0, (VOID **) &mFvbEntry[Index].Fvb->EraseBlocks);
|
EfiConvertPointer (0x0, (VOID **) &mFvbEntry[Index].Fvb->EraseBlocks);
|
||||||
EfiConvertPointer (0x0, (VOID **) &mFvbEntry[Index].Fvb);
|
EfiConvertPointer (0x0, (VOID **) &mFvbEntry[Index].Fvb);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mFvbEntry[Index].FvbExtension != NULL) {
|
|
||||||
EfiConvertPointer (0x0, (VOID **) &mFvbEntry[Index].FvbExtension->EraseFvbCustomBlock);
|
|
||||||
EfiConvertPointer (0x0, (VOID **) &mFvbEntry[Index].FvbExtension);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EfiConvertPointer (0x0, (VOID **) &mFvbEntry);
|
EfiConvertPointer (0x0, (VOID **) &mFvbEntry);
|
||||||
|
@ -668,60 +654,3 @@ EfiFvbGetBlockSize (
|
||||||
|
|
||||||
return mFvbEntry[Instance].Fvb->GetBlockSize (mFvbEntry[Instance].Fvb, Lba, BlockSize, NumOfBlocks);
|
return mFvbEntry[Instance].Fvb->GetBlockSize (mFvbEntry[Instance].Fvb, Lba, BlockSize, NumOfBlocks);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Erases and initializes a specified range of a firmware volume.
|
|
||||||
|
|
||||||
The EfiFvbEraseCustomBlockRange() function erases the specified range in the firmware
|
|
||||||
volume index by Instance. If Instance is larger than the max FVB number, StartLba or
|
|
||||||
LastLba index is larger than the last block of the firmware volume, StartLba > LastLba
|
|
||||||
or StartLba equal to LastLba but OffsetStartLba > OffsetLastLba, this function return
|
|
||||||
the status code EFI_INVALID_PARAMETER.
|
|
||||||
|
|
||||||
@param[in] Instance The FV instance to be operated.
|
|
||||||
@param[in] StartLba The starting logical block index to be erased.
|
|
||||||
@param[in] OffsetStartLba Offset into the starting block at which to
|
|
||||||
begin erasing.
|
|
||||||
@param[in] LastLba The last logical block index to be erased.
|
|
||||||
@param[in] OffsetLastLba Offset into the last block at which to end erasing.
|
|
||||||
|
|
||||||
@retval EFI_EFI_SUCCESS Successfully erase custom block range
|
|
||||||
@retval EFI_INVALID_PARAMETER Invalid parameter. Instance is larger than the max FVB number.
|
|
||||||
@retval EFI_UNSUPPORTED Firmware volume block device has no this capability.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
EfiFvbEraseCustomBlockRange (
|
|
||||||
IN UINTN Instance,
|
|
||||||
IN EFI_LBA StartLba,
|
|
||||||
IN UINTN OffsetStartLba,
|
|
||||||
IN EFI_LBA LastLba,
|
|
||||||
IN UINTN OffsetLastLba
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if (Instance >= mFvbCount) {
|
|
||||||
return EFI_INVALID_PARAMETER;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (EfiAtRuntime() && !mFvbEntry[Instance].IsRuntimeAccess) {
|
|
||||||
return EFI_INVALID_PARAMETER;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mFvbEntry[Instance].FvbExtension == NULL) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mFvbEntry[Instance].FvbExtension->EraseFvbCustomBlock == NULL) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
return mFvbEntry[Instance].FvbExtension->EraseFvbCustomBlock (
|
|
||||||
mFvbEntry[Instance].FvbExtension,
|
|
||||||
StartLba,
|
|
||||||
OffsetStartLba,
|
|
||||||
LastLba,
|
|
||||||
OffsetLastLba
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
|
@ -22,7 +22,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
#include <PiDxe.h>
|
#include <PiDxe.h>
|
||||||
|
|
||||||
#include <Protocol/FirmwareVolumeBlock.h>
|
#include <Protocol/FirmwareVolumeBlock.h>
|
||||||
#include <Protocol/FvbExtension.h>
|
|
||||||
|
|
||||||
#include <Library/FvbServiceLib.h>
|
#include <Library/FvbServiceLib.h>
|
||||||
#include <Library/UefiLib.h>
|
#include <Library/UefiLib.h>
|
||||||
|
@ -40,7 +39,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
typedef struct {
|
typedef struct {
|
||||||
EFI_HANDLE Handle;
|
EFI_HANDLE Handle;
|
||||||
EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *Fvb;
|
EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *Fvb;
|
||||||
EFI_FVB_EXTENSION_PROTOCOL *FvbExtension;
|
|
||||||
BOOLEAN IsRuntimeAccess;
|
BOOLEAN IsRuntimeAccess;
|
||||||
} FVB_ENTRY;
|
} FVB_ENTRY;
|
||||||
|
|
||||||
|
|
|
@ -106,26 +106,6 @@
|
||||||
## Include/Guid/SystemNvDataGuid.h
|
## Include/Guid/SystemNvDataGuid.h
|
||||||
gEfiSystemNvDataFvGuid = { 0xFFF12B8D, 0x7696, 0x4C8B, { 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50 }}
|
gEfiSystemNvDataFvGuid = { 0xFFF12B8D, 0x7696, 0x4C8B, { 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50 }}
|
||||||
|
|
||||||
## Hob guid for the System Non Volatile HOB entries in the HOB list
|
|
||||||
## Include/Guid/SystemNvDataGuid.h
|
|
||||||
gEfiSystemNvDataHobGuid = { 0xD6E5092D, 0xC7B2, 0x4872, { 0xAF, 0x66, 0xFD, 0xC0, 0xE6, 0xF9, 0x5E, 0x78 }}
|
|
||||||
|
|
||||||
## Guid for EFI_DISK_INFO_PROTOCOL.Interface to specify Usb interface.
|
|
||||||
## Include/Protocol/DiskInfo.h
|
|
||||||
gEfiDiskInfoUsbInterfaceGuid = { 0xCB871572, 0xC11A, 0x47B5, { 0xB4, 0x92, 0x67, 0x5E, 0xAF, 0xA7, 0x77, 0x27 }}
|
|
||||||
|
|
||||||
## Guid for EFI_DISK_INFO_PROTOCOL.Interface to specify Scsi interface.
|
|
||||||
## Include/Protocol/DiskInfo.h
|
|
||||||
gEfiDiskInfoScsiInterfaceGuid = { 0x08F74BAA, 0xEA36, 0x41D9, { 0x95, 0x21, 0x21, 0xA7, 0x0F, 0x87, 0x80, 0xBC }}
|
|
||||||
|
|
||||||
## Guid for EFI_DISK_INFO_PROTOCOL.Interface to specify Ide interface.
|
|
||||||
## Include/Protocol/DiskInfo.h
|
|
||||||
gEfiDiskInfoIdeInterfaceGuid = { 0x5E948FE3, 0x26D3, 0x42B5, { 0xAF, 0x17, 0x61, 0x02, 0x87, 0x18, 0x8D, 0xEC }}
|
|
||||||
|
|
||||||
## Guid for EFI_DISK_INFO_PROTOCOL.Interface to specify Ahci interface.
|
|
||||||
## Include/Protocol/DiskInfo.h
|
|
||||||
gEfiDiskInfoAhciInterfaceGuid = { 0x9e498932, 0x4abc, 0x45af, { 0xa3, 0x4d, 0x02, 0x47, 0x78, 0x7b, 0xe7, 0xc6 }}
|
|
||||||
|
|
||||||
## Alternate Firmware Volume Block Guid specify that the additional
|
## Alternate Firmware Volume Block Guid specify that the additional
|
||||||
# FVB protocol is installed into FVB handle
|
# FVB protocol is installed into FVB handle
|
||||||
## Include/Guid/AlternateFvBlock.h
|
## Include/Guid/AlternateFvBlock.h
|
||||||
|
@ -191,6 +171,10 @@
|
||||||
## Include/Guid/Performance.h
|
## Include/Guid/Performance.h
|
||||||
gPerformanceProtocolGuid = { 0x76B6BDFA, 0x2ACD, 0x4462, { 0x9E, 0x3F, 0xCB, 0x58, 0xC9, 0x69, 0xD9, 0x37 }}
|
gPerformanceProtocolGuid = { 0x76B6BDFA, 0x2ACD, 0x4462, { 0x9E, 0x3F, 0xCB, 0x58, 0xC9, 0x69, 0xD9, 0x37 }}
|
||||||
|
|
||||||
|
## Guid is defined for CRC32 encapsulation scheme.
|
||||||
|
## Include/Guid/Crc32GuidedSectionExtraction.h
|
||||||
|
gEfiCrc32GuidedSectionExtractionGuid = { 0xFC1BCDB0, 0x7D31, 0x49aa, {0x93, 0x6A, 0xA4, 0x60, 0x0D, 0x9D, 0xD0, 0x83 } }
|
||||||
|
|
||||||
[Protocols.common]
|
[Protocols.common]
|
||||||
## Load File protocol provides capability to load and unload EFI image into memory and execute it.
|
## Load File protocol provides capability to load and unload EFI image into memory and execute it.
|
||||||
## Include/Protocol/LoadPe32Image.h
|
## Include/Protocol/LoadPe32Image.h
|
||||||
|
@ -204,14 +188,6 @@
|
||||||
## Include/Protocol/GenericMemoryTest.h
|
## Include/Protocol/GenericMemoryTest.h
|
||||||
gEfiGenericMemTestProtocolGuid = { 0x309DE7F1, 0x7F5E, 0x4ACE, { 0xB4, 0x9C, 0x53, 0x1B, 0xE5, 0xAA, 0x95, 0xEF }}
|
gEfiGenericMemTestProtocolGuid = { 0x309DE7F1, 0x7F5E, 0x4ACE, { 0xB4, 0x9C, 0x53, 0x1B, 0xE5, 0xAA, 0x95, 0xEF }}
|
||||||
|
|
||||||
## Disk Info protocol is used to export Inquiry Data for a drive.
|
|
||||||
## Include/Protocol/DiskInfo.h
|
|
||||||
gEfiDiskInfoProtocolGuid = { 0xD432A67F, 0x14DC, 0x484B, { 0xB3, 0xBB, 0x3F, 0x02, 0x91, 0x84, 0x93, 0x27 }}
|
|
||||||
|
|
||||||
## This protocol provides an extended service to erase the specified range of a firmware volume block.
|
|
||||||
## Include/Protocol/FvbExtension.h
|
|
||||||
gEfiFvbExtensionProtocolGuid = { 0x53A4C71B, 0xB581, 0x4170, { 0x91, 0xB3, 0x8D, 0xB8, 0x7A, 0x4B, 0x5C, 0x46 }}
|
|
||||||
|
|
||||||
## Fault tolerant write lite protocol defines only one interface to write
|
## Fault tolerant write lite protocol defines only one interface to write
|
||||||
# the buffer to the fault tolerant storage.
|
# the buffer to the fault tolerant storage.
|
||||||
## Include/Protocol/FaultTolerantWriteLite.h
|
## Include/Protocol/FaultTolerantWriteLite.h
|
||||||
|
@ -225,10 +201,6 @@
|
||||||
## Include/Protocol/OEMBadging.h
|
## Include/Protocol/OEMBadging.h
|
||||||
gEfiOEMBadgingProtocolGuid = { 0x170E13C0, 0xBF1B, 0x4218, { 0x87, 0x1D, 0x2A, 0xBD, 0xC6, 0xF8, 0x87, 0xBC }}
|
gEfiOEMBadgingProtocolGuid = { 0x170E13C0, 0xBF1B, 0x4218, { 0x87, 0x1D, 0x2A, 0xBD, 0xC6, 0xF8, 0x87, 0xBC }}
|
||||||
|
|
||||||
## Protocol guid is defined for CRC32 encapsulation scheme.
|
|
||||||
## Include/Protocol/Crc32GuidedSectionExtraction.h
|
|
||||||
gEfiCrc32GuidedSectionExtractionProtocolGuid = { 0xFC1BCDB0, 0x7D31, 0x49aa, {0x93, 0x6A, 0xA4, 0x60, 0x0D, 0x9D, 0xD0, 0x83 } }
|
|
||||||
|
|
||||||
## Include/Protocol/NicIp4Config.h
|
## Include/Protocol/NicIp4Config.h
|
||||||
gEfiNicIp4ConfigProtocolGuid = {0xdca3d4d, 0x12da, 0x4728, { 0xbf, 0x7e, 0x86, 0xce, 0xb9, 0x28, 0xd0, 0x67 }}
|
gEfiNicIp4ConfigProtocolGuid = {0xdca3d4d, 0x12da, 0x4728, { 0xbf, 0x7e, 0x86, 0xce, 0xb9, 0x28, 0xd0, 0x67 }}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue