19#ifndef __PI_FIRMWARE_FILE_H__
20#define __PI_FIRMWARE_FILE_H__
55#define FFS_FIXED_CHECKSUM 0xAA
64#define EFI_FV_FILETYPE_ALL 0x00
65#define EFI_FV_FILETYPE_RAW 0x01
66#define EFI_FV_FILETYPE_FREEFORM 0x02
67#define EFI_FV_FILETYPE_SECURITY_CORE 0x03
68#define EFI_FV_FILETYPE_PEI_CORE 0x04
69#define EFI_FV_FILETYPE_DXE_CORE 0x05
70#define EFI_FV_FILETYPE_PEIM 0x06
71#define EFI_FV_FILETYPE_DRIVER 0x07
72#define EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER 0x08
73#define EFI_FV_FILETYPE_APPLICATION 0x09
74#define EFI_FV_FILETYPE_MM 0x0A
75#define EFI_FV_FILETYPE_SMM EFI_FV_FILETYPE_MM
76#define EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE 0x0B
77#define EFI_FV_FILETYPE_COMBINED_MM_DXE 0x0C
78#define EFI_FV_FILETYPE_COMBINED_SMM_DXE EFI_FV_FILETYPE_COMBINED_MM_DXE
79#define EFI_FV_FILETYPE_MM_CORE 0x0D
80#define EFI_FV_FILETYPE_SMM_CORE EFI_FV_FILETYPE_MM_CORE
81#define EFI_FV_FILETYPE_MM_STANDALONE 0x0E
82#define EFI_FV_FILETYPE_MM_CORE_STANDALONE 0x0F
83#define EFI_FV_FILETYPE_OEM_MIN 0xc0
84#define EFI_FV_FILETYPE_OEM_MAX 0xdf
85#define EFI_FV_FILETYPE_DEBUG_MIN 0xe0
86#define EFI_FV_FILETYPE_DEBUG_MAX 0xef
87#define EFI_FV_FILETYPE_FFS_MIN 0xf0
88#define EFI_FV_FILETYPE_FFS_MAX 0xff
89#define EFI_FV_FILETYPE_FFS_PAD 0xf0
93#define FFS_ATTRIB_LARGE_FILE 0x01
94#define FFS_ATTRIB_DATA_ALIGNMENT_2 0x02
95#define FFS_ATTRIB_FIXED 0x04
96#define FFS_ATTRIB_DATA_ALIGNMENT 0x38
97#define FFS_ATTRIB_CHECKSUM 0x40
102#define EFI_FILE_HEADER_CONSTRUCTION 0x01
103#define EFI_FILE_HEADER_VALID 0x02
104#define EFI_FILE_DATA_VALID 0x04
105#define EFI_FILE_MARKED_FOR_UPDATE 0x08
106#define EFI_FILE_DELETED 0x10
107#define EFI_FILE_HEADER_INVALID 0x20
185#define IS_FFS_FILE2(FfsFileHeaderPtr) \
186 (((((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Attributes) & FFS_ATTRIB_LARGE_FILE) == FFS_ATTRIB_LARGE_FILE)
188#define FFS_FILE_SIZE(FfsFileHeaderPtr) \
189 ((UINT32) (*((UINT32 *) ((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Size) & 0x00ffffff))
191#define FFS_FILE2_SIZE(FfsFileHeaderPtr) \
192 ((UINT32) (((EFI_FFS_FILE_HEADER2 *) (UINTN) FfsFileHeaderPtr)->ExtendedSize))
200#define EFI_SECTION_ALL 0x00
205#define EFI_SECTION_COMPRESSION 0x01
207#define EFI_SECTION_GUID_DEFINED 0x02
209#define EFI_SECTION_DISPOSABLE 0x03
214#define EFI_SECTION_PE32 0x10
215#define EFI_SECTION_PIC 0x11
216#define EFI_SECTION_TE 0x12
217#define EFI_SECTION_DXE_DEPEX 0x13
218#define EFI_SECTION_VERSION 0x14
219#define EFI_SECTION_USER_INTERFACE 0x15
220#define EFI_SECTION_COMPATIBILITY16 0x16
221#define EFI_SECTION_FIRMWARE_VOLUME_IMAGE 0x17
222#define EFI_SECTION_FREEFORM_SUBTYPE_GUID 0x18
223#define EFI_SECTION_RAW 0x19
224#define EFI_SECTION_PEI_DEPEX 0x1B
225#define EFI_SECTION_MM_DEPEX 0x1C
226#define EFI_SECTION_SMM_DEPEX EFI_SECTION_MM_DEPEX
269#define EFI_NOT_COMPRESSED 0x00
270#define EFI_STANDARD_COMPRESSION 0x01
357#define EFI_GUIDED_SECTION_PROCESSING_REQUIRED 0x01
358#define EFI_GUIDED_SECTION_AUTH_STATUS_VALID 0x02
489#define IS_SECTION2(SectionHeaderPtr) \
490 ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) (UINTN) SectionHeaderPtr)->Size) & 0x00ffffff) == 0x00ffffff)
492#define SECTION_SIZE(SectionHeaderPtr) \
493 ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) (UINTN) SectionHeaderPtr)->Size) & 0x00ffffff))
495#define SECTION2_SIZE(SectionHeaderPtr) \
496 (((EFI_COMMON_SECTION_HEADER2 *) (UINTN) SectionHeaderPtr)->ExtendedSize)
unsigned short CHAR16
Definition ProcessorBind.h:105
unsigned int UINT32
Definition ProcessorBind.h:102
uint32_t Size
Definition pe.h:1
EFI_COMMON_SECTION_HEADER EFI_PE32_SECTION
Definition PiFirmwareFile.h:403
EFI_COMMON_SECTION_HEADER EFI_SMM_DEPEX_SECTION
Definition PiFirmwareFile.h:444
EFI_COMMON_SECTION_HEADER EFI_FIRMWARE_VOLUME_IMAGE_SECTION
Definition PiFirmwareFile.h:326
UINT8 EFI_SECTION_TYPE
Definition PiFirmwareFile.h:194
EFI_COMMON_SECTION_HEADER EFI_PIC_SECTION
Definition PiFirmwareFile.h:421
EFI_COMMON_SECTION_HEADER2 EFI_PE32_SECTION2
Definition PiFirmwareFile.h:404
EFI_COMMON_SECTION_HEADER EFI_RAW_SECTION
Definition PiFirmwareFile.h:433
EFI_COMMON_SECTION_HEADER2 EFI_COMPATIBILITY16_SECTION2
Definition PiFirmwareFile.h:264
EFI_COMMON_SECTION_HEADER2 EFI_DISPOSABLE_SECTION2
Definition PiFirmwareFile.h:315
EFI_COMMON_SECTION_HEADER2 EFI_RAW_SECTION2
Definition PiFirmwareFile.h:434
EFI_COMMON_SECTION_HEADER EFI_DISPOSABLE_SECTION
Definition PiFirmwareFile.h:314
EFI_COMMON_SECTION_HEADER2 EFI_DXE_DEPEX_SECTION2
Definition PiFirmwareFile.h:321
EFI_COMMON_SECTION_HEADER2 EFI_SMM_DEPEX_SECTION2
Definition PiFirmwareFile.h:445
EFI_COMMON_SECTION_HEADER EFI_DXE_DEPEX_SECTION
Definition PiFirmwareFile.h:320
EFI_COMMON_SECTION_HEADER EFI_TE_SECTION
Definition PiFirmwareFile.h:427
EFI_COMMON_SECTION_HEADER EFI_PEI_DEPEX_SECTION
Definition PiFirmwareFile.h:409
UINT8 EFI_FV_FILETYPE
Definition PiFirmwareFile.h:57
EFI_COMMON_SECTION_HEADER2 EFI_FIRMWARE_VOLUME_IMAGE_SECTION2
Definition PiFirmwareFile.h:327
UINT8 EFI_FFS_FILE_ATTRIBUTES
Definition PiFirmwareFile.h:58
UINT8 EFI_FFS_FILE_STATE
Definition PiFirmwareFile.h:59
EFI_COMMON_SECTION_HEADER2 EFI_PIC_SECTION2
Definition PiFirmwareFile.h:422
EFI_COMMON_SECTION_HEADER2 EFI_PEI_DEPEX_SECTION2
Definition PiFirmwareFile.h:410
EFI_COMMON_SECTION_HEADER EFI_COMPATIBILITY16_SECTION
Definition PiFirmwareFile.h:263
EFI_COMMON_SECTION_HEADER2 EFI_TE_SECTION2
Definition PiFirmwareFile.h:428
unsigned short UINT16
Definition actypes.h:237
unsigned char UINT8
Definition actypes.h:236
COMPILER_DEPENDENT_UINT64 UINT64
Definition actypes.h:239
Definition PiFirmwareFile.h:290
UINT8 CompressionType
Definition PiFirmwareFile.h:302
UINT32 UncompressedLength
Definition PiFirmwareFile.h:298
EFI_COMMON_SECTION_HEADER2 CommonHeader
Definition PiFirmwareFile.h:294
Definition PiFirmwareFile.h:275
EFI_COMMON_SECTION_HEADER CommonHeader
Definition PiFirmwareFile.h:279
UINT8 CompressionType
Definition PiFirmwareFile.h:287
UINT32 UncompressedLength
Definition PiFirmwareFile.h:283
Definition PiFirmwareFile.h:381
UINT16 DataOffset
Definition PiFirmwareFile.h:393
UINT16 Attributes
Definition PiFirmwareFile.h:397
EFI_GUID SectionDefinitionGuid
Definition PiFirmwareFile.h:389
EFI_COMMON_SECTION_HEADER2 CommonHeader
Definition PiFirmwareFile.h:385
Definition PiFirmwareFile.h:362
EFI_COMMON_SECTION_HEADER CommonHeader
Definition PiFirmwareFile.h:366
UINT16 Attributes
Definition PiFirmwareFile.h:378
UINT16 DataOffset
Definition PiFirmwareFile.h:374
EFI_GUID SectionDefinitionGuid
Definition PiFirmwareFile.h:370
Definition PiFirmwareFile.h:460
EFI_COMMON_SECTION_HEADER2 CommonHeader
Definition PiFirmwareFile.h:461
Definition PiFirmwareFile.h:451
EFI_COMMON_SECTION_HEADER CommonHeader
Definition PiFirmwareFile.h:452
Definition PiFirmwareFile.h:479
UINT16 BuildNumber
Definition PiFirmwareFile.h:485
EFI_COMMON_SECTION_HEADER2 CommonHeader
Definition PiFirmwareFile.h:480
Definition PiFirmwareFile.h:469
EFI_COMMON_SECTION_HEADER CommonHeader
Definition PiFirmwareFile.h:470
UINT16 BuildNumber
Definition PiFirmwareFile.h:471
Definition PiFirmwareFile.h:26
UINT8 Header
Definition PiFirmwareFile.h:33
UINT8 File
Definition PiFirmwareFile.h:43
UINT16 Checksum16
Definition PiFirmwareFile.h:48