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