2015-08-25 05:10:04 +02:00
/** @file
Internal structure for Var Check Hii .
2017-11-03 09:34:25 +01:00
Copyright ( c ) 2015 - 2017 , Intel Corporation . All rights reserved . < BR >
2015-08-25 05:10:04 +02:00
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
http : //opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN " AS IS " BASIS ,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND , EITHER EXPRESS OR IMPLIED .
* */
# ifndef _VAR_CHECK_STRUCTURE_H_
# define _VAR_CHECK_STRUCTURE_H_
//
// Alignment for Hii Variable and Question header.
//
# define HEADER_ALIGNMENT 4
# define HEADER_ALIGN(Header) (((UINTN) (Header) + HEADER_ALIGNMENT - 1) & (~(HEADER_ALIGNMENT - 1)))
# pragma pack (1)
2017-11-03 09:34:25 +01:00
# define VAR_CHECK_HII_REVISION 0x0002
2015-08-25 05:10:04 +02:00
typedef struct {
UINT16 Revision ;
UINT16 HeaderLength ;
UINT32 Length ; // Length include this header
UINT8 OpCode ;
UINT8 Reserved ;
UINT16 Size ;
UINT32 Attributes ;
EFI_GUID Guid ;
//CHAR16 Name[];
} VAR_CHECK_HII_VARIABLE_HEADER ;
typedef struct {
UINT8 OpCode ;
UINT8 Length ; // Length include this header
UINT16 VarOffset ;
UINT8 StorageWidth ;
2017-11-03 09:34:25 +01:00
BOOLEAN BitFieldStore ; // Whether the Question is stored in bit field, if TRUE, the VarOffset/StorageWidth will be saved as bit level, otherwise in byte level.
2015-08-25 05:10:04 +02:00
} VAR_CHECK_HII_QUESTION_HEADER ;
typedef struct {
UINT8 OpCode ;
UINT8 Length ; // Length include this header
UINT16 VarOffset ;
UINT8 StorageWidth ;
2017-11-03 09:34:25 +01:00
BOOLEAN BitFieldStore ; // Whether the Question is stored in bit field, if TRUE, the VarOffset/StorageWidth will be saved as bit level, otherwise in byte level.
2015-08-25 05:10:04 +02:00
//UINTx Data[]; // x = UINT8/UINT16/UINT32/UINT64;
} VAR_CHECK_HII_QUESTION_ONEOF ;
typedef struct {
UINT8 OpCode ;
UINT8 Length ; // Length include this header
UINT16 VarOffset ;
UINT8 StorageWidth ;
2017-11-03 09:34:25 +01:00
BOOLEAN BitFieldStore ; // Whether the Question is stored in bit field, if TRUE, the VarOffset/StorageWidth will be saved as bit level, otherwise in byte level.
2015-08-25 05:10:04 +02:00
} VAR_CHECK_HII_QUESTION_CHECKBOX ;
typedef struct {
UINT8 OpCode ;
UINT8 Length ; // Length include this header
UINT16 VarOffset ;
UINT8 StorageWidth ;
2017-11-03 09:34:25 +01:00
BOOLEAN BitFieldStore ; // Whether the Question is stored in bit field, if TRUE, the VarOffset/StorageWidth will be saved as bit level, otherwise in byte level.
2015-08-25 05:10:04 +02:00
//UINTx Minimum; // x = UINT8/UINT16/UINT32/UINT64;
//UINTx Maximum; // x = UINT8/UINT16/UINT32/UINT64;
} VAR_CHECK_HII_QUESTION_NUMERIC ;
typedef struct {
UINT8 OpCode ;
UINT8 Length ; // Length include this header
UINT16 VarOffset ;
UINT8 StorageWidth ;
2017-11-03 09:34:25 +01:00
BOOLEAN BitFieldStore ; // Whether the Question is stored in bit field, if TRUE, the VarOffset/StorageWidth will be saved as bit level, otherwise in byte level.
2015-08-25 05:10:04 +02:00
UINT8 MaxContainers ;
//UINTx Data[]; // x = UINT8/UINT16/UINT32/UINT64;
} VAR_CHECK_HII_QUESTION_ORDEREDLIST ;
# pragma pack ()
# endif