OpenCore  1.0.4
OpenCore Bootloader
1.0.4
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
FirmwareVolume.h
Go to the documentation of this file.
1
25#ifndef _FIRMWARE_VOLUME_H_
26#define _FIRMWARE_VOLUME_H_
27
28//
29// Firmware Volume Protocol GUID definition
30//
31#define EFI_FIRMWARE_VOLUME_PROTOCOL_GUID \
32 { \
33 0x389F751F, 0x1838, 0x4388, {0x83, 0x90, 0xCD, 0x81, 0x54, 0xBD, 0x27, 0xF8 } \
34 }
35
36#define FV_DEVICE_SIGNATURE SIGNATURE_32 ('_', 'F', 'V', '_')
37
39
40//
41// FRAMEWORK_EFI_FV_ATTRIBUTES bit definitions
42//
44
45//
46// ************************************************************
47// FRAMEWORK_EFI_FV_ATTRIBUTES bit definitions
48// ************************************************************
49//
50#define EFI_FV_READ_DISABLE_CAP 0x0000000000000001ULL
51#define EFI_FV_READ_ENABLE_CAP 0x0000000000000002ULL
52#define EFI_FV_READ_STATUS 0x0000000000000004ULL
53
54#define EFI_FV_WRITE_DISABLE_CAP 0x0000000000000008ULL
55#define EFI_FV_WRITE_ENABLE_CAP 0x0000000000000010ULL
56#define EFI_FV_WRITE_STATUS 0x0000000000000020ULL
57
58#define EFI_FV_LOCK_CAP 0x0000000000000040ULL
59#define EFI_FV_LOCK_STATUS 0x0000000000000080ULL
60#define EFI_FV_WRITE_POLICY_RELIABLE 0x0000000000000100ULL
61
62#define EFI_FV_ALIGNMENT_CAP 0x0000000000008000ULL
63#define EFI_FV_ALIGNMENT_2 0x0000000000010000ULL
64#define EFI_FV_ALIGNMENT_4 0x0000000000020000ULL
65#define EFI_FV_ALIGNMENT_8 0x0000000000040000ULL
66#define EFI_FV_ALIGNMENT_16 0x0000000000080000ULL
67#define EFI_FV_ALIGNMENT_32 0x0000000000100000ULL
68#define EFI_FV_ALIGNMENT_64 0x0000000000200000ULL
69#define EFI_FV_ALIGNMENT_128 0x0000000000400000ULL
70#define EFI_FV_ALIGNMENT_256 0x0000000000800000ULL
71#define EFI_FV_ALIGNMENT_512 0x0000000001000000ULL
72#define EFI_FV_ALIGNMENT_1K 0x0000000002000000ULL
73#define EFI_FV_ALIGNMENT_2K 0x0000000004000000ULL
74#define EFI_FV_ALIGNMENT_4K 0x0000000008000000ULL
75#define EFI_FV_ALIGNMENT_8K 0x0000000010000000ULL
76#define EFI_FV_ALIGNMENT_16K 0x0000000020000000ULL
77#define EFI_FV_ALIGNMENT_32K 0x0000000040000000ULL
78#define EFI_FV_ALIGNMENT_64K 0x0000000080000000ULL
79
80//
81// Protocol API definitions
82//
83
93typedef
94EFI_STATUS
97 OUT FRAMEWORK_EFI_FV_ATTRIBUTES *Attributes
98 );
99
118typedef
119EFI_STATUS
122 IN OUT FRAMEWORK_EFI_FV_ATTRIBUTES *Attributes
123 );
124
161typedef
162EFI_STATUS
165 IN EFI_GUID *NameGuid,
166 IN OUT VOID **Buffer,
167 IN OUT UINTN *BufferSize,
168 OUT EFI_FV_FILETYPE *FoundType,
169 OUT EFI_FV_FILE_ATTRIBUTES *FileAttributes,
170 OUT UINT32 *AuthenticationStatus
171 );
172
206typedef
207EFI_STATUS
210 IN EFI_GUID *NameGuid,
211 IN EFI_SECTION_TYPE SectionType,
212 IN UINTN SectionInstance,
213 IN OUT VOID **Buffer,
214 IN OUT UINTN *BufferSize,
215 OUT UINT32 *AuthenticationStatus
216 );
217
219
220#define FRAMEWORK_EFI_FV_UNRELIABLE_WRITE 0x00000000
221#define FRAMEWORK_EFI_FV_RELIABLE_WRITE 0x00000001
222
230
257typedef
258EFI_STATUS
261 IN UINT32 NumberOfFiles,
262 IN FRAMEWORK_EFI_FV_WRITE_POLICY WritePolicy,
264 );
265
286typedef
287EFI_STATUS
290 IN OUT VOID *Key,
291 IN OUT EFI_FV_FILETYPE *FileType,
292 OUT EFI_GUID *NameGuid,
293 OUT EFI_FV_FILE_ATTRIBUTES *Attributes,
294 OUT UINTN *Size
295 );
296
297//
298// Protocol interface structure
299//
342
343extern EFI_GUID gEfiFirmwareVolumeProtocolGuid;
344
345#endif
UINT8 EFI_SECTION_TYPE
UINT32 EFI_FV_FILE_ATTRIBUTES
UINT8 EFI_FV_FILETYPE
UINT64 FRAMEWORK_EFI_FV_ATTRIBUTES
EFI_STATUS(EFIAPI * FRAMEWORK_EFI_FV_GET_NEXT_FILE)(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)
EFI_STATUS(EFIAPI * FRAMEWORK_EFI_FV_READ_SECTION)(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)
EFI_STATUS(EFIAPI * FRAMEWORK_EFI_FV_SET_ATTRIBUTES)(IN EFI_FIRMWARE_VOLUME_PROTOCOL *This, IN OUT FRAMEWORK_EFI_FV_ATTRIBUTES *Attributes)
EFI_STATUS(EFIAPI * FRAMEWORK_EFI_FV_GET_ATTRIBUTES)(IN EFI_FIRMWARE_VOLUME_PROTOCOL *This, OUT FRAMEWORK_EFI_FV_ATTRIBUTES *Attributes)
EFI_STATUS(EFIAPI * FRAMEWORK_EFI_FV_WRITE_FILE)(IN EFI_FIRMWARE_VOLUME_PROTOCOL *This, IN UINT32 NumberOfFiles, IN FRAMEWORK_EFI_FV_WRITE_POLICY WritePolicy, IN FRAMEWORK_EFI_FV_WRITE_FILE_DATA *FileData)
EFI_STATUS(EFIAPI * FRAMEWORK_EFI_FV_READ_FILE)(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)
UINT32 FRAMEWORK_EFI_FV_WRITE_POLICY
EFI_GUID gEfiFirmwareVolumeProtocolGuid
DMG_SIZE_DEVICE_PATH Size
OC_TYPING_BUFFER_ENTRY Buffer[OC_TYPING_BUFFER_SIZE]
Definition OcTypingLib.h:42
FRAMEWORK_EFI_FV_SET_ATTRIBUTES SetVolumeAttributes
FRAMEWORK_EFI_FV_GET_NEXT_FILE GetNextFile
FRAMEWORK_EFI_FV_GET_ATTRIBUTES GetVolumeAttributes
FRAMEWORK_EFI_FV_WRITE_FILE WriteFile
FRAMEWORK_EFI_FV_READ_FILE ReadFile
FRAMEWORK_EFI_FV_READ_SECTION ReadSection
EFI_FV_FILE_ATTRIBUTES FileAttributes