]> git.proxmox.com Git - mirror_edk2.git/blame - IntelFrameworkPkg/Include/Framework/FirmwareVolumeHeader.h
Update the copyright notice format
[mirror_edk2.git] / IntelFrameworkPkg / Include / Framework / FirmwareVolumeHeader.h
CommitLineData
7854d05f 1/** @file\r
f22f941e 2 Defines the data structure that is the volume header found at the beginning of\r
7854d05f 3 all firmware volumes that are either memory mapped or have an\r
4 associated FirmwareVolumeBlock protocol.\r
5\r
2b3687db 6Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
f22f941e 7This program and the accompanying materials are licensed and made available under \r
8the terms and conditions of the BSD License that accompanies this distribution. \r
9The full text of the license may be found at\r
10http://opensource.org/licenses/bsd-license.php. \r
11 \r
12THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
13WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
7854d05f 14\r
15 @par Revision Reference:\r
f22f941e 16 These definitions are from the Firmware Volume Block Spec 0.9.\r
7854d05f 17\r
18**/\r
19\r
20#ifndef __EFI_FIRMWARE_VOLUME_HEADER_H__\r
21#define __EFI_FIRMWARE_VOLUME_HEADER_H__\r
22\r
23///\r
f22f941e 24/// Firmware Volume Block Attributes bit definitions.\r
7854d05f 25///@{\r
26#define EFI_FVB_READ_DISABLED_CAP 0x00000001\r
27#define EFI_FVB_READ_ENABLED_CAP 0x00000002\r
28#define EFI_FVB_READ_STATUS 0x00000004\r
29\r
30#define EFI_FVB_WRITE_DISABLED_CAP 0x00000008\r
31#define EFI_FVB_WRITE_ENABLED_CAP 0x00000010\r
32#define EFI_FVB_WRITE_STATUS 0x00000020\r
33\r
34#define EFI_FVB_LOCK_CAP 0x00000040\r
35#define EFI_FVB_LOCK_STATUS 0x00000080\r
36\r
37#define EFI_FVB_STICKY_WRITE 0x00000200\r
38#define EFI_FVB_MEMORY_MAPPED 0x00000400\r
39#define EFI_FVB_ERASE_POLARITY 0x00000800\r
40\r
41#define EFI_FVB_ALIGNMENT_CAP 0x00008000\r
42#define EFI_FVB_ALIGNMENT_2 0x00010000\r
43#define EFI_FVB_ALIGNMENT_4 0x00020000\r
44#define EFI_FVB_ALIGNMENT_8 0x00040000\r
45#define EFI_FVB_ALIGNMENT_16 0x00080000\r
46#define EFI_FVB_ALIGNMENT_32 0x00100000\r
47#define EFI_FVB_ALIGNMENT_64 0x00200000\r
48#define EFI_FVB_ALIGNMENT_128 0x00400000\r
49#define EFI_FVB_ALIGNMENT_256 0x00800000\r
50#define EFI_FVB_ALIGNMENT_512 0x01000000\r
51#define EFI_FVB_ALIGNMENT_1K 0x02000000\r
52#define EFI_FVB_ALIGNMENT_2K 0x04000000\r
53#define EFI_FVB_ALIGNMENT_4K 0x08000000\r
54#define EFI_FVB_ALIGNMENT_8K 0x10000000\r
55#define EFI_FVB_ALIGNMENT_16K 0x20000000\r
56#define EFI_FVB_ALIGNMENT_32K 0x40000000\r
57#define EFI_FVB_ALIGNMENT_64K 0x80000000\r
58///@}\r
59\r
60/// This is a simple macro defined as the set of all FV Block Attributes signifying capabilities.\r
61#define EFI_FVB_CAPABILITIES ( EFI_FVB_READ_DISABLED_CAP | \\r
62 EFI_FVB_READ_ENABLED_CAP | \\r
63 EFI_FVB_WRITE_DISABLED_CAP | \\r
64 EFI_FVB_WRITE_ENABLED_CAP | \\r
65 EFI_FVB_LOCK_CAP \\r
66 )\r
67\r
f22f941e 68/** A parameterized macro defining a boolean expression that tests the state of a particular bit.\r
7854d05f 69 *\r
f22f941e 70 * @param FvbAttributes Indicates a test for CLEAR if EFI_FVB_ERASE_POLARITY is 1, else test for SET.\r
7854d05f 71 *\r
72 * @param TestAttributes The set of bits to test.\r
73 *\r
74 * @param Bit A value indicating the bit(s) to test.\r
75 * If multiple bits are set, the logical OR of their tests is the expression's value.\r
76**/\r
77#define EFI_TEST_FFS_ATTRIBUTES_BIT( FvbAttributes, TestAttributes, Bit) \\r
78 ((BOOLEAN) \\r
79 ((FvbAttributes & EFI_FVB_ERASE_POLARITY) ? (((~TestAttributes) & Bit) == Bit) : ((TestAttributes & Bit) == Bit)) \\r
80 )\r
81\r
f22f941e 82/// A simple macro defined as the set of all FV Block Attribute bits that indicate status.\r
7854d05f 83#define EFI_FVB_STATUS (EFI_FVB_READ_STATUS | EFI_FVB_WRITE_STATUS | EFI_FVB_LOCK_STATUS)\r
84\r
85#endif /* __EFI_FIRMWARE_VOLUME_HEADER_H__ */\r