]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Library/VarCheckPcdLib/VarCheckPcdStructure.h
MdeModulePkg: Fix the build fail issue on VS2008\VS2010\GCC
[mirror_edk2.git] / MdeModulePkg / Library / VarCheckPcdLib / VarCheckPcdStructure.h
1 /** @file
2 Internal structure for Var Check Pcd.
3
4 Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
5 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 _VAR_CHECK_STRUCTURE_H_
16 #define _VAR_CHECK_STRUCTURE_H_
17
18 //
19 // Alignment for PCD Variable and check data header.
20 //
21 #define HEADER_ALIGNMENT 4
22 #define HEADER_ALIGN(Header) (((UINTN) (Header) + HEADER_ALIGNMENT - 1) & (~(HEADER_ALIGNMENT - 1)))
23
24 #pragma pack (1)
25
26 #define VAR_CHECK_PCD_REVISION 0x0001
27
28 typedef enum {
29 VarCheckPcdVariableHeader,
30 VarCheckPcdValidList,
31 VarCheckPcdValidRange,
32 VarCheckPcdCheckTypeMax,
33 } VAR_CHECK_PCD_CHECK_TYPE;
34
35 typedef struct {
36 UINT16 Revision;
37 UINT16 HeaderLength;
38 UINT32 Length; // Length include this header
39 UINT8 Type;
40 UINT8 Reserved[3];
41 UINT32 Attributes;
42 EFI_GUID Guid;
43 //CHAR16 Name[];
44 } VAR_CHECK_PCD_VARIABLE_HEADER;
45
46 typedef struct {
47 UINT8 Type;
48 UINT8 Length; // Length include this header
49 UINT16 VarOffset;
50 UINT8 StorageWidth;
51 } VAR_CHECK_PCD_VALID_DATA_HEADER;
52
53 typedef struct {
54 UINT8 Type;
55 UINT8 Length; // Length include this header
56 UINT16 VarOffset;
57 UINT8 StorageWidth;
58 //UINTx Data[]; // x = UINT8/UINT16/UINT32/UINT64;
59 } VAR_CHECK_PCD_VALID_LIST;
60
61 //typedef struct {
62 // UINTx Minimum; // x = UINT8/UINT16/UINT32/UINT64
63 // UINTx Maximum; // x = UINT8/UINT16/UINT32/UINT64
64 //} VAR_CHECK_PCD_VALID_RANGE_DATA;
65
66 typedef struct {
67 UINT8 Type;
68 UINT8 Length; // Length include this header
69 UINT16 VarOffset;
70 UINT8 StorageWidth;
71 // VAR_CHECK_PCD_VALID_RANGE_DATA ValidRange[];
72 } VAR_CHECK_PCD_VALID_RANGE;
73
74 #pragma pack ()
75
76 #endif