1 /** @file 2 Internal structure for Var Check Hii. 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 Hii Variable and Question 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_HII_REVISION 0x0001 27 28 typedef struct { 29 UINT16 Revision; 30 UINT16 HeaderLength; 31 UINT32 Length; // Length include this header 32 UINT8 OpCode; 33 UINT8 Reserved; 34 UINT16 Size; 35 UINT32 Attributes; 36 EFI_GUID Guid; 37 //CHAR16 Name[]; 38 } VAR_CHECK_HII_VARIABLE_HEADER; 39 40 typedef struct { 41 UINT8 OpCode; 42 UINT8 Length; // Length include this header 43 UINT16 VarOffset; 44 UINT8 StorageWidth; 45 } VAR_CHECK_HII_QUESTION_HEADER; 46 47 typedef struct { 48 UINT8 OpCode; 49 UINT8 Length; // Length include this header 50 UINT16 VarOffset; 51 UINT8 StorageWidth; 52 //UINTx Data[]; // x = UINT8/UINT16/UINT32/UINT64; 53 } VAR_CHECK_HII_QUESTION_ONEOF; 54 55 typedef struct { 56 UINT8 OpCode; 57 UINT8 Length; // Length include this header 58 UINT16 VarOffset; 59 UINT8 StorageWidth; 60 } VAR_CHECK_HII_QUESTION_CHECKBOX; 61 62 typedef struct { 63 UINT8 OpCode; 64 UINT8 Length; // Length include this header 65 UINT16 VarOffset; 66 UINT8 StorageWidth; 67 //UINTx Minimum; // x = UINT8/UINT16/UINT32/UINT64; 68 //UINTx Maximum; // x = UINT8/UINT16/UINT32/UINT64; 69 } VAR_CHECK_HII_QUESTION_NUMERIC; 70 71 typedef struct { 72 UINT8 OpCode; 73 UINT8 Length; // Length include this header 74 UINT16 VarOffset; 75 UINT8 StorageWidth; 76 UINT8 MaxContainers; 77 //UINTx Data[]; // x = UINT8/UINT16/UINT32/UINT64; 78 } VAR_CHECK_HII_QUESTION_ORDEREDLIST; 79 80 #pragma pack () 81 82 #endif 83