]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Include/VariableFormat.h
Fixed EBC build issues.
[mirror_edk2.git] / MdeModulePkg / Include / VariableFormat.h
1 /**@file
2 Header file for EFI Variable Services.
3
4 Copyright (c) 2006 - 2007 Intel Corporation. <BR>
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13 **/
14
15 #ifndef __VARIABLE_FORMAT_H__
16 #define __VARIABLE_FORMAT_H__
17
18 #define VARIABLE_STORE_SIGNATURE EFI_SIGNATURE_32 ('$', 'V', 'S', 'S')
19
20 #define MAX_VARIABLE_SIZE 1024
21
22 //
23 // Enlarges the hardware error record maximum variable size to 32K bytes
24 //
25 #define MAX_HARDWARE_ERROR_VARIABLE_SIZE 0x8000
26
27 #define VARIABLE_DATA 0x55AA
28
29 //
30 // Variable Store Header flags
31 //
32 #define VARIABLE_STORE_FORMATTED 0x5a
33 #define VARIABLE_STORE_HEALTHY 0xfe
34
35 //
36 // The alignment of variable's start offset.
37 // For IA32/X64 architecture, the alignment is set to 1, and
38 // 8 is for IPF archtecture.
39 //
40 #if defined (MDE_CPU_IPF)
41 #define ALIGNMENT 8
42 #else
43 #define ALIGNMENT 1
44 #endif
45
46 //
47 // Variable Store Status
48 //
49 typedef enum {
50 EfiRaw,
51 EfiValid,
52 EfiInvalid,
53 EfiUnknown
54 } VARIABLE_STORE_STATUS;
55
56 //
57 // Variable State flags
58 //
59 #define VAR_IN_DELETED_TRANSITION 0xfe // Variable is in obsolete transistion
60 #define VAR_DELETED 0xfd // Variable is obsolete
61 #define VAR_ADDED 0x7f // Variable has been completely added
62 #define IS_VARIABLE_STATE(_c, _Mask) (BOOLEAN) (((~_c) & (~_Mask)) != 0)
63
64 #pragma pack(1)
65
66 typedef struct {
67 UINT32 Signature;
68 UINT32 Size;
69 UINT8 Format;
70 UINT8 State;
71 UINT16 Reserved;
72 UINT32 Reserved1;
73 } VARIABLE_STORE_HEADER;
74
75 typedef struct {
76 UINT16 StartId;
77 UINT8 State;
78 UINT8 Reserved;
79 UINT32 Attributes;
80 UINT32 NameSize;
81 UINT32 DataSize;
82 EFI_GUID VendorGuid;
83 } VARIABLE_HEADER;
84
85 #pragma pack()
86
87 #endif // _EFI_VARIABLE_H_