+++ /dev/null
-/*++\r
-\r
-Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials \r
-are licensed and made available under the terms and conditions of the BSD License \r
-which accompanies this distribution. The full text of the license may be found at \r
-http://opensource.org/licenses/bsd-license.php \r
- \r
-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:\r
-\r
- EfiFirmwareFileSystem.h\r
-\r
-Abstract:\r
-\r
- This file defines the data structures that comprise the FFS file system.\r
-\r
---*/\r
-\r
-#ifndef _EFI_FFS_FILE_SYSTEM_H_\r
-#define _EFI_FFS_FILE_SYSTEM_H_\r
-\r
-#include "EfiImageFormat.h"\r
-\r
-//\r
-// GUIDs defined by the FFS specification.\r
-//\r
-#define EFI_FIRMWARE_FILE_SYSTEM_GUID \\r
- { \\r
- 0x7A9354D9, 0x0468, 0x444a, {0x81, 0xCE, 0x0B, 0xF6, 0x17, 0xD8, 0x90, 0xDF} \\r
- }\r
-\r
-#define EFI_FFS_VOLUME_TOP_FILE_GUID \\r
- { \\r
- 0x1BA0062E, 0xC779, 0x4582, {0x85, 0x66, 0x33, 0x6A, 0xE8, 0xF7, 0x8F, 0x9} \\r
- }\r
-\r
-//\r
-// FFS specific file types\r
-//\r
-#define EFI_FV_FILETYPE_FFS_PAD 0xF0\r
-\r
-//\r
-// FFS File Attributes\r
-//\r
-#define FFS_ATTRIB_TAIL_PRESENT 0x01\r
-#define FFS_ATTRIB_RECOVERY 0x02\r
-#define FFS_ATTRIB_DATA_ALIGNMENT 0x38\r
-#define FFS_ATTRIB_CHECKSUM 0x40\r
-#if (PI_SPECIFICATION_VERSION < 0x00010000)\r
-#define FFS_ATTRIB_HEADER_EXTENSION 0x04\r
-#else\r
-//\r
-// PI 1.0 definition.\r
-// \r
-#define FFS_ATTRIB_FIXED 0x04\r
-#endif\r
-\r
-\r
-//\r
-// FFS_FIXED_CHECKSUM is the default checksum value used when the\r
-// FFS_ATTRIB_CHECKSUM attribute bit is clear\r
-// This value is defined in PI 1.2.\r
-//\r
-#define FFS_FIXED_CHECKSUM 0xAA\r
-\r
-\r
-//\r
-// File state definitions\r
-//\r
-#define EFI_FILE_HEADER_CONSTRUCTION 0x01\r
-#define EFI_FILE_HEADER_VALID 0x02\r
-#define EFI_FILE_DATA_VALID 0x04\r
-#define EFI_FILE_MARKED_FOR_UPDATE 0x08\r
-#define EFI_FILE_DELETED 0x10\r
-#define EFI_FILE_HEADER_INVALID 0x20\r
-\r
-#define EFI_FILE_ALL_STATE_BITS (EFI_FILE_HEADER_CONSTRUCTION | \\r
- EFI_FILE_HEADER_VALID | \\r
- EFI_FILE_DATA_VALID | \\r
- EFI_FILE_MARKED_FOR_UPDATE | \\r
- EFI_FILE_DELETED | \\r
- EFI_FILE_HEADER_INVALID \\r
- )\r
-\r
-#define EFI_TEST_FFS_ATTRIBUTES_BIT(FvbAttributes, TestAttributes, Bit) \\r
- ( \\r
- (BOOLEAN) ( \\r
- (FvbAttributes & EFI_FVB_ERASE_POLARITY) ? (((~TestAttributes) & Bit) == Bit) : ((TestAttributes & Bit) == Bit) \\r
- ) \\r
- )\r
-\r
-//\r
-// FFS file integrity check structure\r
-//\r
-typedef UINT16 EFI_FFS_FILE_TAIL;\r
-\r
-typedef union {\r
- struct {\r
- UINT8 Header;\r
- UINT8 File;\r
- } Checksum;\r
-#if (PI_SPECIFICATION_VERSION < 0x00010000) \r
- UINT16 TailReference;\r
-#else\r
- UINT16 Checksum16;\r
-#endif\r
-} EFI_FFS_INTEGRITY_CHECK;\r
-\r
-//\r
-// FFS file header definition\r
-//\r
-typedef UINT8 EFI_FFS_FILE_ATTRIBUTES;\r
-typedef UINT8 EFI_FFS_FILE_STATE;\r
-\r
-typedef struct {\r
- EFI_GUID Name;\r
- EFI_FFS_INTEGRITY_CHECK IntegrityCheck;\r
- EFI_FV_FILETYPE Type;\r
- EFI_FFS_FILE_ATTRIBUTES Attributes;\r
- UINT8 Size[3];\r
- EFI_FFS_FILE_STATE State;\r
-} EFI_FFS_FILE_HEADER;\r
-\r
-#endif\r