]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkPkg/Include/Framework/FirmwareVolumeHeader.h
Changed Copyright to 2006-2009 to reflect original through current revisions. Delete...
[mirror_edk2.git] / IntelFrameworkPkg / Include / Framework / FirmwareVolumeHeader.h
index 806145bc99d24e2479edb1b81b468ee02993bff1..f47d95679048747829e6000ea7c569cb08d39166 100644 (file)
@@ -1,77 +1,86 @@
-/** @file\r
-  Defines data structure that is the volume header found at the beginning of\r
-  all firmware volumes that are either memory mapped, or have an\r
-  associated FirmwareVolumeBlock protocol.\r
-\r
-  Copyright (c) 2006, Intel Corporation\r
-  All rights reserved. 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:  FirmwareVolumeHeader.h\r
-\r
-  @par Revision Reference:\r
-  These definitions are from Firmware Volume Block Spec 0.9.\r
-\r
-**/\r
-\r
-#ifndef __EFI_FIRMWARE_VOLUME_HEADER_H__\r
-#define __EFI_FIRMWARE_VOLUME_HEADER_H__\r
-\r
-//\r
-// Firmware Volume Block Attributes bit definitions\r
-//\r
-#define EFI_FVB_READ_DISABLED_CAP   0x00000001\r
-#define EFI_FVB_READ_ENABLED_CAP    0x00000002\r
-#define EFI_FVB_READ_STATUS         0x00000004\r
-\r
-#define EFI_FVB_WRITE_DISABLED_CAP  0x00000008\r
-#define EFI_FVB_WRITE_ENABLED_CAP   0x00000010\r
-#define EFI_FVB_WRITE_STATUS        0x00000020\r
-\r
-#define EFI_FVB_LOCK_CAP            0x00000040\r
-#define EFI_FVB_LOCK_STATUS         0x00000080\r
-\r
-#define EFI_FVB_STICKY_WRITE        0x00000200\r
-#define EFI_FVB_MEMORY_MAPPED       0x00000400\r
-#define EFI_FVB_ERASE_POLARITY      0x00000800\r
-\r
-#define EFI_FVB_ALIGNMENT_CAP       0x00008000\r
-#define EFI_FVB_ALIGNMENT_2         0x00010000\r
-#define EFI_FVB_ALIGNMENT_4         0x00020000\r
-#define EFI_FVB_ALIGNMENT_8         0x00040000\r
-#define EFI_FVB_ALIGNMENT_16        0x00080000\r
-#define EFI_FVB_ALIGNMENT_32        0x00100000\r
-#define EFI_FVB_ALIGNMENT_64        0x00200000\r
-#define EFI_FVB_ALIGNMENT_128       0x00400000\r
-#define EFI_FVB_ALIGNMENT_256       0x00800000\r
-#define EFI_FVB_ALIGNMENT_512       0x01000000\r
-#define EFI_FVB_ALIGNMENT_1K        0x02000000\r
-#define EFI_FVB_ALIGNMENT_2K        0x04000000\r
-#define EFI_FVB_ALIGNMENT_4K        0x08000000\r
-#define EFI_FVB_ALIGNMENT_8K        0x10000000\r
-#define EFI_FVB_ALIGNMENT_16K       0x20000000\r
-#define EFI_FVB_ALIGNMENT_32K       0x40000000\r
-#define EFI_FVB_ALIGNMENT_64K       0x80000000\r
-\r
-#define EFI_FVB_CAPABILITIES  (EFI_FVB_READ_DISABLED_CAP | \\r
-                              EFI_FVB_READ_ENABLED_CAP | \\r
-                              EFI_FVB_WRITE_DISABLED_CAP | \\r
-                              EFI_FVB_WRITE_ENABLED_CAP | \\r
-                              EFI_FVB_LOCK_CAP \\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
-#define EFI_FVB_STATUS    (EFI_FVB_READ_STATUS | EFI_FVB_WRITE_STATUS | EFI_FVB_LOCK_STATUS)\r
-\r
-#endif\r
+/** @file
+  Defines data structure that is the volume header found at the beginning of
+  all firmware volumes that are either memory mapped, or have an
+  associated FirmwareVolumeBlock protocol.
+
+  Copyright (c) 2006-2009, Intel Corporation
+  All rights reserved. This program and the accompanying materials
+  are licensed and made available under the terms and conditions of the BSD License
+  which accompanies this distribution.  The full text of the license may be found at
+  http://opensource.org/licenses/bsd-license.php
+
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+  @par Revision Reference:
+  These definitions are from Firmware Volume Block Spec 0.9.
+
+**/
+
+#ifndef __EFI_FIRMWARE_VOLUME_HEADER_H__
+#define __EFI_FIRMWARE_VOLUME_HEADER_H__
+
+///
+/// Firmware Volume Block Attributes bit definitions
+
+//@{
+#define EFI_FVB_READ_DISABLED_CAP   0x00000001
+#define EFI_FVB_READ_ENABLED_CAP    0x00000002
+#define EFI_FVB_READ_STATUS         0x00000004
+
+#define EFI_FVB_WRITE_DISABLED_CAP  0x00000008
+#define EFI_FVB_WRITE_ENABLED_CAP   0x00000010
+#define EFI_FVB_WRITE_STATUS        0x00000020
+
+#define EFI_FVB_LOCK_CAP            0x00000040
+#define EFI_FVB_LOCK_STATUS         0x00000080
+
+#define EFI_FVB_STICKY_WRITE        0x00000200
+#define EFI_FVB_MEMORY_MAPPED       0x00000400
+#define EFI_FVB_ERASE_POLARITY      0x00000800
+
+#define EFI_FVB_ALIGNMENT_CAP       0x00008000
+#define EFI_FVB_ALIGNMENT_2         0x00010000
+#define EFI_FVB_ALIGNMENT_4         0x00020000
+#define EFI_FVB_ALIGNMENT_8         0x00040000
+#define EFI_FVB_ALIGNMENT_16        0x00080000
+#define EFI_FVB_ALIGNMENT_32        0x00100000
+#define EFI_FVB_ALIGNMENT_64        0x00200000
+#define EFI_FVB_ALIGNMENT_128       0x00400000
+#define EFI_FVB_ALIGNMENT_256       0x00800000
+#define EFI_FVB_ALIGNMENT_512       0x01000000
+#define EFI_FVB_ALIGNMENT_1K        0x02000000
+#define EFI_FVB_ALIGNMENT_2K        0x04000000
+#define EFI_FVB_ALIGNMENT_4K        0x08000000
+#define EFI_FVB_ALIGNMENT_8K        0x10000000
+#define EFI_FVB_ALIGNMENT_16K       0x20000000
+#define EFI_FVB_ALIGNMENT_32K       0x40000000
+#define EFI_FVB_ALIGNMENT_64K       0x80000000
+//@}
+
+/// This is a simple macro defined as the set of all FV Block Attributes signifying capabilities.
+#define EFI_FVB_CAPABILITIES  ( EFI_FVB_READ_DISABLED_CAP  | \
+                                EFI_FVB_READ_ENABLED_CAP   | \
+                                EFI_FVB_WRITE_DISABLED_CAP | \
+                                EFI_FVB_WRITE_ENABLED_CAP  | \
+                                EFI_FVB_LOCK_CAP \
+                              )
+
+/** A parameterized macro defining a boolean expression which tests the state of a particular bit.
+  *
+  * @param FvbAttributes  Indicates test for CLEAR if EFI_FVB_ERASE_POLARITY is 1, else test for SET
+  *
+  * @param TestAttributes The set of bits to test.
+  *
+  * @param Bit            A value indicating the bit(s) to test.
+  *                       If multiple bits are set, the logical OR of their tests is the expression's value.
+**/
+#define EFI_TEST_FFS_ATTRIBUTES_BIT( FvbAttributes, TestAttributes, Bit) \
+    ((BOOLEAN) \
+      ((FvbAttributes & EFI_FVB_ERASE_POLARITY) ? (((~TestAttributes) & Bit) == Bit) : ((TestAttributes & Bit) == Bit)) \
+    )
+
+/// A simple macro defined as the set of all FV Block Attribute bits which indicate status.
+#define EFI_FVB_STATUS    (EFI_FVB_READ_STATUS | EFI_FVB_WRITE_STATUS | EFI_FVB_LOCK_STATUS)
+
+#endif  /* __EFI_FIRMWARE_VOLUME_HEADER_H__ */