Add Variable Header and WorkingBlockHeader definition.
authorlgao4 <lgao4@7335b38e-4728-0410-8992-fb3ffe349368>
Wed, 21 Nov 2007 05:46:05 +0000 (05:46 +0000)
committerlgao4 <lgao4@7335b38e-4728-0410-8992-fb3ffe349368>
Wed, 21 Nov 2007 05:46:05 +0000 (05:46 +0000)
git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@880 7335b38e-4728-0410-8992-fb3ffe349368

Source/C/Include/Common/VariableFormat.h [new file with mode: 0644]
Source/C/Include/Common/WorkingBlockHeader.h [new file with mode: 0644]

diff --git a/Source/C/Include/Common/VariableFormat.h b/Source/C/Include/Common/VariableFormat.h
new file mode 100644 (file)
index 0000000..77dcb2e
--- /dev/null
@@ -0,0 +1,51 @@
+/**@file\r
+  Header file for EFI Variable Services.\r
+\r
+  Copyright (c) 2007 Intel Corporation. <BR>\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
+**/\r
+\r
+#ifndef __VARIABLE_FORMAT_H__\r
+#define __VARIABLE_FORMAT_H__\r
+\r
+#define VARIABLE_STORE_SIGNATURE  EFI_SIGNATURE_32 ('$', 'V', 'S', 'S')\r
+\r
+#define VARIABLE_DATA                     0x55AA\r
+\r
+//\r
+// Variable Store Header flags\r
+//\r
+#define VARIABLE_STORE_FORMATTED          0x5a\r
+#define VARIABLE_STORE_HEALTHY            0xfe\r
+\r
+#pragma pack(1)\r
+\r
+typedef struct {\r
+  UINT32  Signature;\r
+  UINT32  Size;\r
+  UINT8   Format;\r
+  UINT8   State;\r
+  UINT16  Reserved;\r
+  UINT32  Reserved1;\r
+} VARIABLE_STORE_HEADER;\r
+\r
+typedef struct {\r
+  UINT16      StartId;\r
+  UINT8       State;\r
+  UINT8       Reserved;\r
+  UINT32      Attributes;\r
+  UINT32      NameSize;\r
+  UINT32      DataSize;\r
+  EFI_GUID    VendorGuid;\r
+} VARIABLE_HEADER;\r
+\r
+#pragma pack()\r
+\r
+#endif // _EFI_VARIABLE_H_\r
diff --git a/Source/C/Include/Common/WorkingBlockHeader.h b/Source/C/Include/Common/WorkingBlockHeader.h
new file mode 100644 (file)
index 0000000..91b5089
--- /dev/null
@@ -0,0 +1,47 @@
+/*++\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:\r
+\r
+  WorkingBlockHeader.h\r
+\r
+Abstract:\r
+\r
+  Defines data structure that is the headers found at the runtime\r
+  updatable firmware volumes, such as the FileSystemGuid of the\r
+  working block, the header structure of the variable block, FTW\r
+  working block, or event log block.\r
+\r
+--*/\r
+\r
+#ifndef __EFI_WORKING_BLOCK_HEADER_H__\r
+#define __EFI_WORKING_BLOCK_HEADER_H__\r
+\r
+//\r
+// EFI Fault tolerant working block header\r
+// The header is immediately followed by the write queue.\r
+//\r
+typedef struct {\r
+  EFI_GUID  Signature;\r
+  UINT32    Crc;\r
+  UINT8     WorkingBlockValid : 1;\r
+  UINT8     WorkingBlockInvalid : 1;\r
+#define WORKING_BLOCK_VALID   0x1\r
+#define WORKING_BLOCK_INVALID 0x2\r
+  UINT8     Reserved : 6;\r
+  UINT8     Reserved3[3];\r
+  UINT32    WriteQueueSize;\r
+  //\r
+  // UINT8                WriteQueue[WriteQueueSize];\r
+  //\r
+} EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER;\r
+\r
+#endif\r