3 Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
4 SPDX-License-Identifier: BSD-2-Clause-Patent
12 Firmware volume block driver for Intel Firmware Hub (FWH) device
16 #ifndef _FW_BLOCK_SERVICE_H
17 #define _FW_BLOCK_SERVICE_H
20 // BugBug: Add documentation here for data structure!!!!
22 #define FVB_PHYSICAL 0
29 EFI_FIRMWARE_VOLUME_HEADER VolumeHeader
;
30 } EFI_FW_VOL_INSTANCE
;
34 EFI_FW_VOL_INSTANCE
*FvInstance
[2];
35 UINT8
*FvbScratchSpace
[2];
39 // Fvb Protocol instance data
41 #define FVB_DEVICE_FROM_THIS(a) CR (a, EFI_FW_VOL_BLOCK_DEVICE, FwVolBlockInstance, FVB_DEVICE_SIGNATURE)
42 #define FVB_EXTEND_DEVICE_FROM_THIS(a) CR (a, EFI_FW_VOL_BLOCK_DEVICE, FvbExtension, FVB_DEVICE_SIGNATURE)
43 #define FVB_DEVICE_SIGNATURE SIGNATURE_32 ('F', 'V', 'B', 'N')
46 MEDIA_FW_VOL_DEVICE_PATH FvDevPath
;
47 EFI_DEVICE_PATH_PROTOCOL EndDevPath
;
48 } FV_PIWG_DEVICE_PATH
;
51 MEMMAP_DEVICE_PATH MemMapDevPath
;
52 EFI_DEVICE_PATH_PROTOCOL EndDevPath
;
53 } FV_MEMMAP_DEVICE_PATH
;
57 EFI_DEVICE_PATH_PROTOCOL
*DevicePath
;
59 EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL FwVolBlockInstance
;
60 } EFI_FW_VOL_BLOCK_DEVICE
;
65 OUT EFI_FIRMWARE_VOLUME_HEADER
**FvbInfo
73 IN OUT UINTN
*NumBytes
,
75 IN ESAL_FWB_GLOBAL
*Global
,
83 IN CONST UINTN BlockOffset
,
84 IN OUT UINTN
*NumBytes
,
85 IN CONST UINT8
*Buffer
,
86 IN ESAL_FWB_GLOBAL
*Global
,
94 IN ESAL_FWB_GLOBAL
*Global
,
99 FvbSetVolumeAttributes (
101 IN OUT EFI_FVB_ATTRIBUTES_2
*Attributes
,
102 IN ESAL_FWB_GLOBAL
*Global
,
107 FvbGetVolumeAttributes (
109 OUT EFI_FVB_ATTRIBUTES_2
*Attributes
,
110 IN ESAL_FWB_GLOBAL
*Global
,
115 FvbGetPhysicalAddress (
117 OUT EFI_PHYSICAL_ADDRESS
*Address
,
118 IN ESAL_FWB_GLOBAL
*Global
,
125 IN EFI_HANDLE ImageHandle
,
126 IN EFI_SYSTEM_TABLE
*SystemTable
132 FvbClassAddressChangeEvent (
141 OUT UINTN
*LbaAddress
,
142 OUT UINTN
*LbaLength
,
143 OUT UINTN
*NumOfBlocks
,
144 IN ESAL_FWB_GLOBAL
*Global
,
153 FvbProtocolGetAttributes (
154 IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL
*This
,
155 OUT EFI_FVB_ATTRIBUTES_2
*Attributes
160 FvbProtocolSetAttributes (
161 IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL
*This
,
162 IN OUT EFI_FVB_ATTRIBUTES_2
*Attributes
167 FvbProtocolGetPhysicalAddress (
168 IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL
*This
,
169 OUT EFI_PHYSICAL_ADDRESS
*Address
174 FvbProtocolGetBlockSize (
175 IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL
*This
,
176 IN CONST EFI_LBA Lba
,
177 OUT UINTN
*BlockSize
,
178 OUT UINTN
*NumOfBlocks
184 IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL
*This
,
185 IN CONST EFI_LBA Lba
,
186 IN CONST UINTN Offset
,
187 IN OUT UINTN
*NumBytes
,
194 IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL
*This
,
197 IN OUT UINTN
*NumBytes
,
203 FvbProtocolEraseBlocks (
204 IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL
*This
,