]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/DriverSampleDxe/NVDataStruc.h
MdeModulePkg/DriverSample: Add questions with bit/union VarStore
[mirror_edk2.git] / MdeModulePkg / Universal / DriverSampleDxe / NVDataStruc.h
CommitLineData
0bb0f8b8 1/** @file\r
2\r
911405a3 3Copyright (c) 2007 - 2017, Intel Corporation. All rights reserved.<BR>\r
e5eed7d3 4This program and the accompanying materials\r
0bb0f8b8 5are licensed and made available under the terms and conditions of the BSD License\r
6which accompanies this distribution. The full text of the license may be found at\r
7http://opensource.org/licenses/bsd-license.php\r
8\r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
11\r
12Module Name:\r
13\r
14 NVDataStruc.h\r
15\r
16Abstract:\r
17\r
18 NVData structure used by the sample driver\r
19\r
20Revision History:\r
21\r
22\r
23**/\r
24\r
7064c0a5 25#ifndef _NVDATASTRUC_H_\r
26#define _NVDATASTRUC_H_\r
0bb0f8b8 27\r
d91c7bf9 28#include <Guid/HiiPlatformSetupFormset.h>\r
96a65fc8 29#include <Guid/HiiFormMapMethodGuid.h>\r
c8ad2d7a
LG
30#include <Guid/DriverSampleHii.h>\r
31#include <Guid/ZeroGuid.h>\r
78c2b9a3 32\r
8d00a0f1 33#define CONFIGURATION_VARSTORE_ID 0x1234\r
911405a3 34#define BITS_VARSTORE_ID 0x2345\r
0bb0f8b8 35\r
36#pragma pack(1)\r
911405a3
DB
37\r
38typedef struct {\r
39 UINT16 NestByteField;\r
40 UINT8 : 1; // unamed field can be used for padding\r
41 UINT8 NestBitCheckbox : 1;\r
42 UINT8 NestBitOneof : 2;\r
43 UINT8 : 0; // Special width 0 can be used to force alignment at the next word boundary\r
44 UINT8 NestBitNumeric : 4;\r
45} MY_BITS_DATA;\r
46\r
47typedef union {\r
48 UINT16 BitField : 10;\r
49 UINT8 ByteField;\r
50} MY_EFI_UNION_DATA;\r
51\r
0bb0f8b8 52typedef struct {\r
0bb0f8b8 53 UINT16 MyStringData[40];\r
0bb0f8b8 54 UINT16 SomethingHiddenForHtml;\r
55 UINT8 HowOldAreYouInYearsManual;\r
56 UINT16 HowTallAreYouManual;\r
57 UINT8 HowOldAreYouInYears;\r
58 UINT16 HowTallAreYou;\r
59 UINT8 MyFavoriteNumber;\r
60 UINT8 TestLateCheck;\r
61 UINT8 TestLateCheck2;\r
62 UINT8 QuestionAboutTreeHugging;\r
63 UINT8 ChooseToActivateNuclearWeaponry;\r
64 UINT8 SuppressGrayOutSomething;\r
65 UINT8 OrderedList[8];\r
b5a906f4 66 UINT16 BootOrder[8];\r
0bb0f8b8 67 UINT8 BootOrderLarge;\r
8d00a0f1 68 UINT8 DynamicRefresh;\r
69 UINT8 DynamicOneof;\r
70 UINT8 DynamicOrderedList[5];\r
38ebfecb 71 UINT8 Reserved;\r
78c2b9a3 72 EFI_HII_REF RefData;\r
38ebfecb
LG
73 UINT8 NameValueVar0;\r
74 UINT16 NameValueVar1;\r
75 UINT16 NameValueVar2[20];\r
96a65fc8
LG
76 UINT8 SerialPortNo;\r
77 UINT8 SerialPortStatus;\r
78 UINT16 SerialPortIo;\r
79 UINT8 SerialPortIrq;\r
ee31d1be
ED
80 UINT8 GetDefaultValueFromCallBack;\r
81 UINT8 GetDefaultValueFromAccess;\r
82 EFI_HII_TIME Time;\r
211cc6e5 83 UINT8 RefreshGuidCount;\r
9bd22b08 84 UINT8 Match2;\r
622ce645 85 UINT8 GetDefaultValueFromCallBackForOrderedList[3];\r
911405a3
DB
86 UINT8 BitCheckbox : 1;\r
87 UINT16 BitOneof : 6;\r
88 UINT16 BitNumeric : 12;\r
89 MY_BITS_DATA MyBitData;\r
90 MY_EFI_UNION_DATA MyUnionData;\r
0bb0f8b8 91} DRIVER_SAMPLE_CONFIGURATION;\r
92\r
93//\r
94// 2nd NV data structure definition\r
95//\r
96typedef struct {\r
97 UINT8 Field8;\r
98 UINT16 Field16;\r
99 UINT8 OrderedList[3];\r
003f3c00 100 UINT16 SubmittedCallback;\r
78c2b9a3 101} MY_EFI_VARSTORE_DATA;\r
0bb0f8b8 102\r
911405a3
DB
103//\r
104// 3rd NV data structure definition\r
105//\r
106typedef struct {\r
107 MY_BITS_DATA BitsData;\r
108 UINT32 EfiBitGrayoutTest : 5;\r
109 UINT32 EfiBitNumeric : 4;\r
110 UINT32 EfiBitOneof : 10;\r
111 UINT32 EfiBitCheckbox : 1;\r
112} MY_EFI_BITS_VARSTORE_DATA;\r
113\r
7e3bcccb
LG
114//\r
115// Labels definition\r
116//\r
117#define LABEL_UPDATE1 0x1234\r
118#define LABEL_UPDATE2 0x2234\r
211cc6e5 119#define LABEL_UPDATE3 0x3234\r
7e3bcccb 120#define LABEL_END 0x2223\r
0bb0f8b8 121\r
122#pragma pack()\r
123\r
124#endif\r