TianoCore EDK2 master
Loading...
Searching...
No Matches
FirmwareVolumeBlock.h
Go to the documentation of this file.
1
12#ifndef __FIRMWARE_VOLUME_BLOCK_H__
13#define __FIRMWARE_VOLUME_BLOCK_H__
14
15//
16// EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL is defined in PI 1.0 spec and its GUID value
17// is later updated to be the same as that of EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL
18// defined in PI 1.2 spec.
19//
20#define EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL_GUID \
21 { 0x8f644fa9, 0xe850, 0x4db1, {0x9c, 0xe2, 0xb, 0x44, 0x69, 0x8e, 0x8d, 0xa4 } }
22
23#define EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL_GUID \
24 { 0x8f644fa9, 0xe850, 0x4db1, {0x9c, 0xe2, 0xb, 0x44, 0x69, 0x8e, 0x8d, 0xa4 } }
25
27
29
45typedef
49 OUT EFI_FVB_ATTRIBUTES_2 *Attributes
50 );
51
74typedef
78 IN OUT EFI_FVB_ATTRIBUTES_2 *Attributes
79 );
80
98typedef
103 );
104
131typedef
133(EFIAPI *EFI_FVB_GET_BLOCK_SIZE)(
135 IN EFI_LBA Lba,
136 OUT UINTN *BlockSize,
137 OUT UINTN *NumberOfBlocks
138 );
139
187typedef
189(EFIAPI *EFI_FVB_READ)(
191 IN EFI_LBA Lba,
192 IN UINTN Offset,
193 IN OUT UINTN *NumBytes,
194 IN OUT UINT8 *Buffer
195 );
196
256typedef
258(EFIAPI *EFI_FVB_WRITE)(
260 IN EFI_LBA Lba,
261 IN UINTN Offset,
262 IN OUT UINTN *NumBytes,
263 IN UINT8 *Buffer
264 );
265
269#define EFI_LBA_LIST_TERMINATOR 0xFFFFFFFFFFFFFFFFULL
270
319typedef
321(EFIAPI *EFI_FVB_ERASE_BLOCKS)(
323 ...
324 );
325
336 EFI_FVB_GET_ATTRIBUTES GetAttributes;
337 EFI_FVB_SET_ATTRIBUTES SetAttributes;
338 EFI_FVB_GET_PHYSICAL_ADDRESS GetPhysicalAddress;
339 EFI_FVB_GET_BLOCK_SIZE GetBlockSize;
340 EFI_FVB_READ Read;
341 EFI_FVB_WRITE Write;
342 EFI_FVB_ERASE_BLOCKS EraseBlocks;
347};
348
349extern EFI_GUID gEfiFirmwareVolumeBlockProtocolGuid;
350extern EFI_GUID gEfiFirmwareVolumeBlock2ProtocolGuid;
351
352#endif
UINT64 UINTN
EFI_STATUS(EFIAPI * EFI_FVB_WRITE)(IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This, IN EFI_LBA Lba, IN UINTN Offset, IN OUT UINTN *NumBytes, IN UINT8 *Buffer)
EFI_STATUS(EFIAPI * EFI_FVB_READ)(IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This, IN EFI_LBA Lba, IN UINTN Offset, IN OUT UINTN *NumBytes, IN OUT UINT8 *Buffer)
EFI_STATUS(EFIAPI * EFI_FVB_GET_BLOCK_SIZE)(IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This, IN EFI_LBA Lba, OUT UINTN *BlockSize, OUT UINTN *NumberOfBlocks)
EFI_STATUS(EFIAPI * EFI_FVB_GET_PHYSICAL_ADDRESS)(IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This, OUT EFI_PHYSICAL_ADDRESS *Address)
EFI_STATUS(EFIAPI * EFI_FVB_GET_ATTRIBUTES)(IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This, OUT EFI_FVB_ATTRIBUTES_2 *Attributes)
EFI_STATUS(EFIAPI * EFI_FVB_SET_ATTRIBUTES)(IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This, IN OUT EFI_FVB_ATTRIBUTES_2 *Attributes)
EFI_STATUS(EFIAPI * EFI_FVB_ERASE_BLOCKS)(IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,...)
#define CONST
Definition: Base.h:259
#define IN
Definition: Base.h:279
#define OUT
Definition: Base.h:284
UINT32 EFI_FVB_ATTRIBUTES_2
UINT64 EFI_PHYSICAL_ADDRESS
Definition: UefiBaseType.h:50
UINT64 EFI_LBA
Definition: UefiBaseType.h:45
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
VOID * EFI_HANDLE
Definition: UefiBaseType.h:33
Definition: Base.h:213