]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Include/VariableFormat.h
Add comments and DoxyGen format for these files.
[mirror_edk2.git] / MdeModulePkg / Include / VariableFormat.h
CommitLineData
3cfb790c 1/**@file\r
2 Header file for EFI Variable Services.\r
3\r
4 Copyright (c) 2006 - 2007 Intel Corporation. <BR>\r
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
9 \r
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
18#define VARIABLE_STORE_SIGNATURE EFI_SIGNATURE_32 ('$', 'V', 'S', 'S')\r
19\r
518d395c 20#define MAX_VARIABLE_SIZE FixedPcdGet32(PcdMaxVariableSize)\r
3cfb790c 21\r
22//\r
23// Enlarges the hardware error record maximum variable size to 32K bytes\r
24//\r
518d395c 25#define MAX_HARDWARE_ERROR_VARIABLE_SIZE FixedPcdGet32(PcdMaxHardwareErrorVariableSize)\r
3cfb790c 26\r
27#define VARIABLE_DATA 0x55AA\r
28\r
29//\r
30// Variable Store Header flags\r
31//\r
32#define VARIABLE_STORE_FORMATTED 0x5a\r
33#define VARIABLE_STORE_HEALTHY 0xfe\r
34\r
35//\r
36// The alignment of variable's start offset.\r
37// For IA32/X64 architecture, the alignment is set to 1, and\r
38// 8 is for IPF archtecture.\r
39//\r
40#if defined (MDE_CPU_IPF)\r
9cad030b 41#define ALIGNMENT 8\r
3cfb790c 42#else\r
9cad030b 43#define ALIGNMENT 1\r
3cfb790c 44#endif\r
45\r
9cad030b 46#define HEADER_ALIGNMENT 4\r
47\r
3cfb790c 48//\r
49// Variable Store Status\r
50//\r
51typedef enum {\r
52 EfiRaw,\r
53 EfiValid,\r
54 EfiInvalid,\r
55 EfiUnknown\r
56} VARIABLE_STORE_STATUS;\r
57\r
58//\r
59// Variable State flags\r
60//\r
61#define VAR_IN_DELETED_TRANSITION 0xfe // Variable is in obsolete transistion\r
62#define VAR_DELETED 0xfd // Variable is obsolete\r
130e2569 63#define VAR_HEADER_VALID_ONLY 0x7f // Variable header has been valid\r
64#define VAR_ADDED 0x3f // Variable has been completely added\r
65 // \r
3cfb790c 66#define IS_VARIABLE_STATE(_c, _Mask) (BOOLEAN) (((~_c) & (~_Mask)) != 0)\r
67\r
68#pragma pack(1)\r
69\r
504214c4
LG
70//\r
71// Variable Store region header\r
72//\r
3cfb790c 73typedef struct {\r
74 UINT32 Signature;\r
75 UINT32 Size;\r
76 UINT8 Format;\r
77 UINT8 State;\r
78 UINT16 Reserved;\r
79 UINT32 Reserved1;\r
80} VARIABLE_STORE_HEADER;\r
81\r
504214c4
LG
82//\r
83// Variable header structure\r
84//\r
3cfb790c 85typedef struct {\r
86 UINT16 StartId;\r
87 UINT8 State;\r
88 UINT8 Reserved;\r
89 UINT32 Attributes;\r
90 UINT32 NameSize;\r
91 UINT32 DataSize;\r
92 EFI_GUID VendorGuid;\r
93} VARIABLE_HEADER;\r
94\r
95#pragma pack()\r
96\r
97#endif // _EFI_VARIABLE_H_\r