THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
\r
- Module Name: PiFirmwareFile.h\r
-\r
@par Revision Reference:\r
Version 1.0.\r
\r
typedef UINT8 EFI_FFS_FILE_ATTRIBUTES;\r
typedef UINT8 EFI_FFS_FILE_STATE;\r
\r
+//\r
+// File Types Definitions\r
+// \r
+#define EFI_FV_FILETYPE_RAW 0x01\r
+#define EFI_FV_FILETYPE_FREEFORM 0x02\r
+#define EFI_FV_FILETYPE_SECURITY_CORE 0x03\r
+#define EFI_FV_FILETYPE_PEI_CORE 0x04\r
+#define EFI_FV_FILETYPE_DXE_CORE 0x05\r
+#define EFI_FV_FILETYPE_PEIM 0x06\r
+#define EFI_FV_FILETYPE_DRIVER 0x07\r
+#define EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER 0x08\r
+#define EFI_FV_FILETYPE_APPLICATION 0x09\r
+#define EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE 0x0B\r
+#define EFI_FV_FILETYPE_OEM_MIN 0xc0\r
+#define EFI_FV_FILETYPE_OEM_MAX 0xdf\r
+#define EFI_FV_FILETYPE_DEBUG_MIN 0xe0\r
+#define EFI_FV_FILETYPE_DEBUG_MAX 0xef\r
+#define EFI_FV_FILETYPE_FFS_MIN 0xf0\r
+#define EFI_FV_FILETYPE_FFS_MAX 0xff\r
+#define EFI_FV_FILETYPE_FFS_PAD 0xf0\r
// \r
// FFS File Attributes.\r
// \r
// section data is compressed.\r
// \r
typedef struct {\r
- EFI_COMMON_SECTION_HEADER CommonHeader;\r
- UINT32 UncompressedLength;\r
- UINT8 CompressionType;\r
+ EFI_COMMON_SECTION_HEADER CommonHeader;\r
+ UINT32 UncompressedLength;\r
+ UINT8 CompressionType;\r
} EFI_COMPRESSION_SECTION;\r
\r
//\r
// Leaf section which contains a single GUID.\r
// \r
typedef struct {\r
- EFI_COMMON_SECTION_HEADER CommonHeader;\r
- EFI_GUID SubTypeGuid;\r
+ EFI_COMMON_SECTION_HEADER CommonHeader;\r
+ EFI_GUID SubTypeGuid;\r
} EFI_FREEFORM_SUBTYPE_GUID_SECTION;\r
\r
//\r
// Leaf section which is encapsulation defined by specific GUID\r
// \r
typedef struct {\r
- EFI_COMMON_SECTION_HEADER CommonHeader;\r
- EFI_GUID SectionDefinitionGuid;\r
- UINT16 DataOffset;\r
- UINT16 Attributes;\r
+ EFI_COMMON_SECTION_HEADER CommonHeader;\r
+ EFI_GUID SectionDefinitionGuid;\r
+ UINT16 DataOffset;\r
+ UINT16 Attributes;\r
} EFI_GUID_DEFINED_SECTION;\r
\r
//\r
// is human readable file name.\r
// \r
typedef struct {\r
- EFI_COMMON_SECTION_HEADER CommonHeader;\r
+ EFI_COMMON_SECTION_HEADER CommonHeader;\r
\r
//\r
// Array of unicode string.\r
// \r
- CHAR16 FileNameString[1];\r
+ CHAR16 FileNameString[1];\r
} EFI_USER_INTERFACE_SECTION;\r
\r
\r
// an optional unicode string that represent the file revision. \r
// \r
typedef struct {\r
- EFI_COMMON_SECTION_HEADER CommonHeader;\r
- UINT16 BuildNumber;\r
- CHAR16 VersionString[1];\r
+ EFI_COMMON_SECTION_HEADER CommonHeader;\r
+ UINT16 BuildNumber;\r
+ CHAR16 VersionString[1];\r
} EFI_VERSION_SECTION;\r
\r
+\r
+#define SECTION_SIZE(SectionHeaderPtr) \\r
+ ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) SectionHeaderPtr)->Size) & 0x00ffffff))\r
+\r
+\r
#endif\r
\r