]> git.proxmox.com Git - mirror_edk2.git/blame - Nt32Pkg/FvbServicesRuntimeDxe/FwBlockService.h
clean up the un-suitable ';' location when declaring the functions.
[mirror_edk2.git] / Nt32Pkg / FvbServicesRuntimeDxe / FwBlockService.h
CommitLineData
6ae81428 1/**@file\r
55e6660f 2\r
3Copyright (c) 2006, Intel Corporation \r
4All rights reserved. This program and the accompanying materials \r
5are licensed and made available under the terms and conditions of the BSD License \r
6which accompanies this distribution. The full text of the license may be found at \r
7http://opensource.org/licenses/bsd-license.php \r
8 \r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
11\r
12Module Name:\r
13\r
14 FwBlockService.h\r
15 \r
16Abstract:\r
17\r
18 Firmware volume block driver for Intel Firmware Hub (FWH) device\r
19\r
6ae81428 20**/\r
55e6660f 21\r
22#ifndef _FW_BLOCK_SERVICE_H\r
23#define _FW_BLOCK_SERVICE_H\r
24\r
25//\r
26// BugBug: Add documentation here for data structure!!!!\r
27//\r
28#define FVB_PHYSICAL 0\r
29#define FVB_VIRTUAL 1\r
30\r
31typedef struct {\r
32 EFI_LOCK FvbDevLock;\r
33 UINTN FvBase[2];\r
34 UINTN NumOfBlocks;\r
35 EFI_FIRMWARE_VOLUME_HEADER VolumeHeader;\r
36} EFI_FW_VOL_INSTANCE;\r
37\r
38typedef struct {\r
39 UINT32 NumFv;\r
40 EFI_FW_VOL_INSTANCE *FvInstance[2];\r
41 UINT8 *FvbScratchSpace[2];\r
42} ESAL_FWB_GLOBAL;\r
43\r
44//\r
45// Fvb Protocol instance data\r
46//\r
47#define FVB_DEVICE_FROM_THIS(a) CR (a, EFI_FW_VOL_BLOCK_DEVICE, FwVolBlockInstance, FVB_DEVICE_SIGNATURE)\r
48#define FVB_EXTEND_DEVICE_FROM_THIS(a) CR (a, EFI_FW_VOL_BLOCK_DEVICE, FvbExtension, FVB_DEVICE_SIGNATURE)\r
49#define FVB_DEVICE_SIGNATURE EFI_SIGNATURE_32 ('F', 'V', 'B', 'N')\r
50\r
51typedef struct {\r
52 MEMMAP_DEVICE_PATH MemMapDevPath;\r
53 EFI_DEVICE_PATH_PROTOCOL EndDevPath;\r
54} FV_DEVICE_PATH;\r
55\r
56typedef struct {\r
57 UINTN Signature;\r
58 FV_DEVICE_PATH DevicePath;\r
59 UINTN Instance;\r
60 EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL FwVolBlockInstance;\r
61 EFI_FVB_EXTENSION_PROTOCOL FvbExtension;\r
62} EFI_FW_VOL_BLOCK_DEVICE;\r
63\r
64EFI_STATUS\r
65GetFvbInfo (\r
66 IN UINT64 FvLength,\r
67 OUT EFI_FIRMWARE_VOLUME_HEADER **FvbInfo\r
ed66e1bc 68 );\r
55e6660f 69\r
70EFI_STATUS\r
71FvbReadBlock (\r
72 IN UINTN Instance,\r
73 IN EFI_LBA Lba,\r
74 IN UINTN BlockOffset,\r
75 IN OUT UINTN *NumBytes,\r
76 IN UINT8 *Buffer,\r
77 IN ESAL_FWB_GLOBAL *Global,\r
78 IN BOOLEAN Virtual\r
ed66e1bc 79 );\r
55e6660f 80\r
81EFI_STATUS\r
82FvbWriteBlock (\r
83 IN UINTN Instance,\r
84 IN CONST EFI_LBA Lba,\r
85 IN CONST UINTN BlockOffset,\r
86 IN OUT UINTN *NumBytes,\r
87 IN CONST UINT8 *Buffer,\r
88 IN ESAL_FWB_GLOBAL *Global,\r
89 IN BOOLEAN Virtual\r
ed66e1bc 90 );\r
55e6660f 91\r
92EFI_STATUS\r
93FvbEraseBlock (\r
94 IN UINTN Instance,\r
95 IN EFI_LBA Lba,\r
96 IN ESAL_FWB_GLOBAL *Global,\r
97 IN BOOLEAN Virtual\r
ed66e1bc 98 );\r
55e6660f 99\r
100EFI_STATUS\r
101FvbSetVolumeAttributes (\r
102 IN UINTN Instance,\r
8ee3a199 103 IN OUT EFI_FVB_ATTRIBUTES_2 *Attributes,\r
55e6660f 104 IN ESAL_FWB_GLOBAL *Global,\r
105 IN BOOLEAN Virtual\r
ed66e1bc 106 );\r
55e6660f 107\r
108EFI_STATUS\r
109FvbGetVolumeAttributes (\r
110 IN UINTN Instance,\r
8ee3a199 111 OUT EFI_FVB_ATTRIBUTES_2 *Attributes,\r
55e6660f 112 IN ESAL_FWB_GLOBAL *Global,\r
113 IN BOOLEAN Virtual\r
ed66e1bc 114 );\r
55e6660f 115\r
116EFI_STATUS\r
117FvbGetPhysicalAddress (\r
118 IN UINTN Instance,\r
119 OUT EFI_PHYSICAL_ADDRESS *Address,\r
120 IN ESAL_FWB_GLOBAL *Global,\r
121 IN BOOLEAN Virtual\r
ed66e1bc 122 );\r
55e6660f 123\r
124EFI_STATUS\r
125EFIAPI\r
126FvbInitialize (\r
127 IN EFI_HANDLE ImageHandle,\r
128 IN EFI_SYSTEM_TABLE *SystemTable\r
ed66e1bc 129 );\r
55e6660f 130\r
131\r
132VOID\r
133EFIAPI\r
134FvbClassAddressChangeEvent (\r
135 IN EFI_EVENT Event,\r
136 IN VOID *Context\r
ed66e1bc 137 );\r
55e6660f 138\r
139EFI_STATUS\r
140FvbGetLbaAddress (\r
141 IN UINTN Instance,\r
142 IN EFI_LBA Lba,\r
143 OUT UINTN *LbaAddress,\r
144 OUT UINTN *LbaLength,\r
145 OUT UINTN *NumOfBlocks,\r
146 IN ESAL_FWB_GLOBAL *Global,\r
147 IN BOOLEAN Virtual\r
ed66e1bc 148 );\r
55e6660f 149\r
150//\r
151// Protocol APIs\r
152//\r
153EFI_STATUS\r
154EFIAPI\r
155FvbProtocolGetAttributes (\r
156 IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *This,\r
8ee3a199 157 OUT EFI_FVB_ATTRIBUTES_2 *Attributes\r
ed66e1bc 158 );\r
55e6660f 159\r
160EFI_STATUS\r
161EFIAPI\r
162FvbProtocolSetAttributes (\r
163 IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *This,\r
8ee3a199 164 IN OUT EFI_FVB_ATTRIBUTES_2 *Attributes\r
ed66e1bc 165 );\r
55e6660f 166\r
167EFI_STATUS\r
168EFIAPI\r
169FvbProtocolGetPhysicalAddress (\r
170 IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *This,\r
171 OUT EFI_PHYSICAL_ADDRESS *Address\r
ed66e1bc 172 );\r
55e6660f 173\r
174EFI_STATUS\r
175EFIAPI\r
176FvbProtocolGetBlockSize (\r
177 IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *This,\r
178 IN CONST EFI_LBA Lba,\r
179 OUT UINTN *BlockSize,\r
180 OUT UINTN *NumOfBlocks\r
ed66e1bc 181 );\r
55e6660f 182\r
183EFI_STATUS\r
184EFIAPI\r
185FvbProtocolRead (\r
186 IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *This,\r
187 IN CONST EFI_LBA Lba,\r
188 IN CONST UINTN Offset,\r
189 IN OUT UINTN *NumBytes,\r
190 IN UINT8 *Buffer\r
ed66e1bc 191 );\r
55e6660f 192\r
193EFI_STATUS\r
194EFIAPI\r
195FvbProtocolWrite (\r
196 IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *This,\r
197 IN CONST EFI_LBA Lba,\r
198 IN CONST UINTN Offset,\r
199 IN OUT UINTN *NumBytes,\r
200 IN CONST UINT8 *Buffer\r
ed66e1bc 201 );\r
55e6660f 202\r
203EFI_STATUS\r
204EFIAPI\r
205FvbProtocolEraseBlocks (\r
206 IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *This,\r
207 ...\r
ed66e1bc 208 );\r
55e6660f 209\r
210EFI_STATUS\r
211EFIAPI\r
212FvbExtendProtocolEraseCustomBlockRange (\r
213 IN EFI_FVB_EXTENSION_PROTOCOL *This,\r
214 IN EFI_LBA StartLba,\r
215 IN UINTN OffsetStartLba,\r
216 IN EFI_LBA LastLba,\r
217 IN UINTN OffsetLastLba\r
ed66e1bc 218 );\r
55e6660f 219\r
220#endif\r