MdeModulePkg/DriverSample: Add questions with bit/union VarStore

REF:https://bugzilla.tianocore.org/show_bug.cgi?id=545

Cc: Eric Dong <eric.dong@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
Dandan Bi
2017-09-20 20:20:05 +08:00
committed by Eric Dong
parent a63be426f8
commit 911405a3f1
5 changed files with 390 additions and 1 deletions

View File

@@ -1,6 +1,6 @@
/** @file
Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2007 - 2017, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -31,8 +31,24 @@ Revision History:
#include <Guid/ZeroGuid.h>
#define CONFIGURATION_VARSTORE_ID 0x1234
#define BITS_VARSTORE_ID 0x2345
#pragma pack(1)
typedef struct {
UINT16 NestByteField;
UINT8 : 1; // unamed field can be used for padding
UINT8 NestBitCheckbox : 1;
UINT8 NestBitOneof : 2;
UINT8 : 0; // Special width 0 can be used to force alignment at the next word boundary
UINT8 NestBitNumeric : 4;
} MY_BITS_DATA;
typedef union {
UINT16 BitField : 10;
UINT8 ByteField;
} MY_EFI_UNION_DATA;
typedef struct {
UINT16 MyStringData[40];
UINT16 SomethingHiddenForHtml;
@@ -67,6 +83,11 @@ typedef struct {
UINT8 RefreshGuidCount;
UINT8 Match2;
UINT8 GetDefaultValueFromCallBackForOrderedList[3];
UINT8 BitCheckbox : 1;
UINT16 BitOneof : 6;
UINT16 BitNumeric : 12;
MY_BITS_DATA MyBitData;
MY_EFI_UNION_DATA MyUnionData;
} DRIVER_SAMPLE_CONFIGURATION;
//
@@ -79,6 +100,17 @@ typedef struct {
UINT16 SubmittedCallback;
} MY_EFI_VARSTORE_DATA;
//
// 3rd NV data structure definition
//
typedef struct {
MY_BITS_DATA BitsData;
UINT32 EfiBitGrayoutTest : 5;
UINT32 EfiBitNumeric : 4;
UINT32 EfiBitOneof : 10;
UINT32 EfiBitCheckbox : 1;
} MY_EFI_BITS_VARSTORE_DATA;
//
// Labels definition
//