]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Include/VariableFormat.h
Clean up to update the reference of the these macros:
[mirror_edk2.git] / MdeModulePkg / Include / VariableFormat.h
CommitLineData
5f597758 1/** @file\r
ebafc55b 2 The variable data structure related to EDK II specific UEFI variable implementation.\r
3cfb790c 3\r
5f597758 4 Copyright (c) 2006 - 2008 Intel Corporation. <BR>\r
3cfb790c 5 All rights reserved. This program and the accompanying materials\r
6 are licensed and made available under the terms and conditions of the BSD License\r
7 which accompanies this distribution. The full text of the license may be found at\r
8 http://opensource.org/licenses/bsd-license.php\r
ebafc55b 9\r
3cfb790c 10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12\r
13**/\r
14\r
15#ifndef __VARIABLE_FORMAT_H__\r
16#define __VARIABLE_FORMAT_H__\r
17\r
ebafc55b
LG
18///\r
19/// Maximum buffer for the single variable.\r
20///\r
71f36e0f 21#ifndef MAX_VARIABLE_SIZE\r
518d395c 22#define MAX_VARIABLE_SIZE FixedPcdGet32(PcdMaxVariableSize)\r
71f36e0f 23#endif\r
ebafc55b
LG
24\r
25///\r
346cf9ac 26/// Maximum buffer for Hardware error record variable\r
ebafc55b 27///\r
71f36e0f 28#ifndef MAX_HARDWARE_ERROR_VARIABLE_SIZE\r
518d395c 29#define MAX_HARDWARE_ERROR_VARIABLE_SIZE FixedPcdGet32(PcdMaxHardwareErrorVariableSize)\r
71f36e0f 30#endif\r
3cfb790c 31\r
ebafc55b
LG
32///\r
33/// The alignment of variable's start offset.\r
34/// For IA32/X64 architecture, the alignment is set to 1, and\r
35/// 8 is for IPF archtecture.\r
36///\r
3cfb790c 37#if defined (MDE_CPU_IPF)\r
9cad030b 38#define ALIGNMENT 8\r
3cfb790c 39#else\r
9cad030b 40#define ALIGNMENT 1\r
3cfb790c 41#endif\r
42\r
9cad030b 43#define HEADER_ALIGNMENT 4\r
44\r
ebafc55b
LG
45///\r
46/// Variable Store Status\r
47///\r
3cfb790c 48typedef enum {\r
49 EfiRaw,\r
50 EfiValid,\r
51 EfiInvalid,\r
52 EfiUnknown\r
53} VARIABLE_STORE_STATUS;\r
54\r
3cfb790c 55#pragma pack(1)\r
56\r
ebafc55b
LG
57#define VARIABLE_STORE_SIGNATURE EFI_SIGNATURE_32 ('$', 'V', 'S', 'S')\r
58\r
59///\r
60/// Variable Store Header Format and State\r
61///\r
62#define VARIABLE_STORE_FORMATTED 0x5a\r
63#define VARIABLE_STORE_HEALTHY 0xfe\r
64\r
65///\r
66/// Variable Store region header\r
67///\r
3cfb790c 68typedef struct {\r
ebafc55b
LG
69 ///\r
70 /// Variable store region signature.\r
71 ///\r
3cfb790c 72 UINT32 Signature;\r
ebafc55b
LG
73 ///\r
74 /// Size of variable store region including this header\r
75 ///\r
3cfb790c 76 UINT32 Size;\r
ebafc55b
LG
77 ///\r
78 /// variable region format state\r
79 ///\r
3cfb790c 80 UINT8 Format;\r
ebafc55b
LG
81 ///\r
82 /// variable region healthy state\r
83 ///\r
3cfb790c 84 UINT8 State;\r
85 UINT16 Reserved;\r
86 UINT32 Reserved1;\r
87} VARIABLE_STORE_HEADER;\r
88\r
ebafc55b
LG
89///\r
90/// Variable data start flag\r
91///\r
92#define VARIABLE_DATA 0x55AA\r
93\r
94///\r
95/// Variable State flags\r
96///\r
97#define VAR_IN_DELETED_TRANSITION 0xfe /// Variable is in obsolete transistion\r
98#define VAR_DELETED 0xfd /// Variable is obsolete\r
99#define VAR_HEADER_VALID_ONLY 0x7f /// Variable header has been valid\r
100#define VAR_ADDED 0x3f /// Variable has been completely added\r
101\r
102///\r
103/// Removed\r
104///\r
105#define IS_VARIABLE_STATE(_c, _Mask) (BOOLEAN) (((~_c) & (~_Mask)) != 0)\r
106\r
107///\r
108/// Variable Data Header Structure\r
109///\r
3cfb790c 110typedef struct {\r
ebafc55b
LG
111 ///\r
112 /// Variable Data Start Flag\r
113 ///\r
3cfb790c 114 UINT16 StartId;\r
ebafc55b
LG
115 ///\r
116 /// Variable State defined above\r
117 ///\r
3cfb790c 118 UINT8 State;\r
119 UINT8 Reserved;\r
ebafc55b
LG
120 ///\r
121 /// Attributes of variable defined in UEFI spec\r
122 ///\r
3cfb790c 123 UINT32 Attributes;\r
ebafc55b
LG
124 ///\r
125 /// Size of variable Null-terminated Unicode string name\r
126 ///\r
3cfb790c 127 UINT32 NameSize;\r
ebafc55b
LG
128 ///\r
129 /// Size of the variable data without this header\r
130 ///\r
3cfb790c 131 UINT32 DataSize;\r
ebafc55b
LG
132 ///\r
133 /// A unique identifier for the vendor.\r
134 ///\r
3cfb790c 135 EFI_GUID VendorGuid;\r
136} VARIABLE_HEADER;\r
137\r
138#pragma pack()\r
139\r
140#endif // _EFI_VARIABLE_H_\r