| /** @file | |
| Definitions of RedfishPlatformConfigLib. | |
| Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> | |
| (C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR> | |
| Copyright (c) 2022-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. | |
| SPDX-License-Identifier: BSD-2-Clause-Patent | |
| **/ | |
| #ifndef HII_UTILITY_LIB_ | |
| #define HII_UTILITY_LIB_ | |
| #include <Protocol/DisplayProtocol.h> | |
| #include <Protocol/HiiConfigAccess.h> | |
| // | |
| // IFR relative definition | |
| // | |
| #define EFI_HII_EXPRESSION_INCONSISTENT_IF 0 | |
| #define EFI_HII_EXPRESSION_NO_SUBMIT_IF 1 | |
| #define EFI_HII_EXPRESSION_GRAY_OUT_IF 2 | |
| #define EFI_HII_EXPRESSION_SUPPRESS_IF 3 | |
| #define EFI_HII_EXPRESSION_DISABLE_IF 4 | |
| #define EFI_HII_EXPRESSION_VALUE 5 | |
| #define EFI_HII_EXPRESSION_RULE 6 | |
| #define EFI_HII_EXPRESSION_READ 7 | |
| #define EFI_HII_EXPRESSION_WRITE 8 | |
| #define EFI_HII_EXPRESSION_WARNING_IF 9 | |
| #define EFI_HII_VARSTORE_BUFFER 0 | |
| #define EFI_HII_VARSTORE_NAME_VALUE 1 | |
| #define EFI_HII_VARSTORE_EFI_VARIABLE 2 // EFI Varstore type follow UEFI spec before 2.3.1. | |
| #define EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER 3 // EFI varstore type follow UEFI spec 2.3.1 and later. | |
| /// | |
| /// HII_NAME_VALUE_NODE for name/value storage | |
| /// | |
| typedef struct { | |
| UINTN Signature; | |
| LIST_ENTRY Link; | |
| CHAR16 *Name; | |
| CHAR16 *Value; | |
| } HII_NAME_VALUE_NODE; | |
| #define HII_NAME_VALUE_NODE_SIGNATURE SIGNATURE_32 ('N', 'V', 'S', 'T') | |
| #define HII_NAME_VALUE_NODE_FROM_LINK(a) CR (a, HII_NAME_VALUE_NODE, Link, HII_NAME_VALUE_NODE_SIGNATURE) | |
| /// | |
| /// Storage info | |
| /// | |
| typedef union { | |
| EFI_STRING_ID VarName; | |
| UINT16 VarOffset; | |
| } HII_VAR_STORE_INFO; | |
| /// | |
| /// FormSet storage | |
| /// | |
| typedef struct { | |
| UINTN Signature; | |
| LIST_ENTRY Link; | |
| UINT8 Type; ///< Storage type | |
| EFI_HII_HANDLE HiiHandle; ///< HiiHandle for this varstore. | |
| /// | |
| /// For all type of storages. | |
| /// | |
| UINT16 VarStoreId; ///< VarStore ID. | |
| EFI_GUID Guid; ///< VarStore Guid. | |
| /// | |
| /// For EFI_IFR_VARSTORE, EFI_IFR_VARSTORE_EFI | |
| /// | |
| CHAR16 *Name; ///< VarStore name | |
| UINT16 Size; ///< VarStore size. | |
| UINT8 *Buffer; ///< Buffer storage. | |
| UINT8 *EditBuffer; ///< Edit copy for Buffer Storage | |
| /// | |
| /// For EFI_IFR_VARSTORE_EFI: EFI Variable. | |
| /// | |
| UINT32 Attributes; | |
| /// | |
| /// For EFI_IFR_VARSTORE_NAME_VALUE. | |
| /// | |
| LIST_ENTRY NameValueList; ///< List of NAME_VALUE_NODE | |
| CHAR16 *ConfigHdr; ///< <ConfigHdr> | |
| CHAR16 *ConfigRequest; ///< <ConfigRequest> = <ConfigHdr> + <RequestElement> | |
| UINTN ElementCount; ///< Number of <RequestElement> in the <ConfigRequest> | |
| UINTN SpareStrLen; ///< Spare length of ConfigRequest string buffer | |
| } HII_FORMSET_STORAGE; | |
| #define HII_STORAGE_SIGNATURE SIGNATURE_32 ('B', 'S', 'T', 'G') | |
| #define HII_STORAGE_FROM_LINK(a) CR (a, HII_FORMSET_STORAGE, Link, HII_STORAGE_SIGNATURE) | |
| /// | |
| /// Definition of EXPRESS_RESULT | |
| /// | |
| typedef enum { | |
| ExpressFalse = 0, | |
| ExpressGrayOut, | |
| ExpressSuppress, | |
| ExpressDisable | |
| } EXPRESS_RESULT; | |
| /// | |
| /// Definition of EXPRESS_LEVEL | |
| /// | |
| typedef enum { | |
| ExpressNone = 0, | |
| ExpressForm, | |
| ExpressStatement, | |
| ExpressOption | |
| } EXPRESS_LEVEL; | |
| /// | |
| /// Definition of HII_EXPRESSION_OPCODE_EXTRA | |
| /// | |
| typedef union { | |
| EFI_HII_VALUE Value; ///< EFI_IFR_UINT64, EFI_IFR_UINT32, EFI_IFR_UINT16, EFI_IFR_UINT8, EFI_IFR_STRING_REF1 | |
| UINT8 Format; ///< For EFI_IFR_TO_STRING, EFI_IFR_FIND | |
| UINT8 Flags; ///< For EFI_IFR_SPAN | |
| UINT8 RuleId; ///< For EFI_IFR_RULE_REF | |
| EFI_GUID Guid; ///< For EFI_IFR_SECURITY, EFI_IFR_MATCH2 | |
| struct { | |
| EFI_QUESTION_ID QuestionId; | |
| EFI_HII_VALUE Value; | |
| } EqIdValData; | |
| struct { | |
| EFI_QUESTION_ID QuestionId1; | |
| EFI_QUESTION_ID QuestionId2; | |
| } EqIdIdData; | |
| struct { | |
| EFI_QUESTION_ID QuestionId; ///< For EFI_IFR_EQ_ID_VAL_LIST | |
| UINT16 ListLength; | |
| UINT16 *ValueList; | |
| } EqIdListData; | |
| struct { | |
| EFI_QUESTION_ID QuestionId; | |
| } QuestionRef1Data; | |
| struct { | |
| EFI_STRING_ID DevicePath; ///< For EFI_IFR_QUESTION_REF3_3 | |
| EFI_GUID Guid; | |
| } QuestionRef3Data; | |
| struct { | |
| HII_FORMSET_STORAGE *VarStorage; | |
| HII_VAR_STORE_INFO VarStoreInfo; | |
| UINT8 ValueType; | |
| UINT8 ValueWidth; | |
| CHAR16 *ValueName; | |
| } GetSetData; | |
| } HII_EXPRESSION_OPCODE_EXTRA; | |
| typedef union _HII_DEPENDENCY_EXPRESSION HII_DEPENDENCY_EXPRESSION; | |
| /// | |
| /// Definition of HII_EXPRESSION_CONSTANT | |
| /// | |
| /// Operand: | |
| /// | |
| /// EFI_IFR_TRUE | |
| /// EFI_IFR_FALSE | |
| /// EFI_IFR_ONE | |
| /// EFI_IFR_ONES | |
| /// EFI_IFR_ZERO | |
| /// EFI_IFR_UNDEFINED | |
| /// EFI_IFR_VERSION | |
| /// EFI_IFR_UINT8 | |
| /// EFI_IFR_UINT16 | |
| /// EFI_IFR_UINT32 | |
| /// EFI_IFR_UINT64 | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| EFI_HII_VALUE Value; | |
| } HII_EXPRESSION_CONSTANT; | |
| /// | |
| /// Definition of HII_DEPENDENCY_DUP | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| } HII_DEPENDENCY_DUP; | |
| /// | |
| /// Definition of HII_DEPENDENCY_EQ_ID_VAL | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| EFI_QUESTION_ID QuestionId; | |
| EFI_HII_VALUE Value; | |
| } HII_DEPENDENCY_EQ_ID_VAL; | |
| /// | |
| /// Definition of HII_DEPENDENCY_EQ_ID_VAL | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| EFI_QUESTION_ID QuestionId1; | |
| EFI_QUESTION_ID QuestionId2; | |
| } HII_DEPENDENCY_EQ_ID_ID; | |
| /// | |
| /// Definition of HII_DEPENDENCY_EQ_ID_VAL_LIST | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| EFI_QUESTION_ID QuestionId; | |
| UINT16 ListLength; | |
| UINT16 *ValueList; | |
| } HII_DEPENDENCY_EQ_ID_VAL_LIST; | |
| /// | |
| /// Definition of HII_DEPENDENCY_QUESTION_REF1 | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| EFI_QUESTION_ID QuestionId; | |
| } HII_DEPENDENCY_QUESTION_REF1; | |
| /// | |
| /// Definition of HII_DEPENDENCY_RULE_REF | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| UINT8 RuleId; | |
| } HII_DEPENDENCY_RULE_REF; | |
| /// | |
| /// Definition of HII_DEPENDENCY_STRING_REF1 | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| EFI_HII_VALUE Value; | |
| } HII_DEPENDENCY_STRING_REF1; | |
| /// | |
| /// Definition of HII_DEPENDENCY_THIS | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| EFI_QUESTION_ID QuestionId; | |
| } HII_DEPENDENCY_THIS; | |
| /// | |
| /// Definition of HII_DEPENDENCY_SECURITY | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| EFI_GUID Permissions; | |
| } HII_DEPENDENCY_SECURITY; | |
| /// | |
| /// Definition of HII_DEPENDENCY_GET | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_FORMSET_STORAGE *VarStorage; | |
| HII_VAR_STORE_INFO VarStoreInfo; | |
| UINT8 ValueType; | |
| UINT8 ValueWidth; | |
| CHAR16 *ValueName; | |
| } HII_DEPENDENCY_GET; | |
| /// | |
| /// Definition of HII_DEPENDENCY_LENGTH | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *SubExpression; | |
| } HII_DEPENDENCY_LENGTH; | |
| /// | |
| /// Definition of HII_DEPENDENCY_BITWISE_NOT | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *SubExpression; | |
| } HII_DEPENDENCY_BITWISE_NOT; | |
| /// | |
| /// Definition of HII_DEPENDENCY_STRING_REF2 | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *SubExpression; | |
| } HII_DEPENDENCY_STRING_REF2; | |
| /// | |
| /// Definition of HII_DEPENDENCY_QUESTION_REF2 | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *SubExpression; | |
| } HII_DEPENDENCY_QUESTION_REF2; | |
| /// | |
| /// Definition of HII_DEPENDENCY_QUESTION_REF3 | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| EFI_STRING_ID DevicePath; | |
| EFI_GUID Guid; | |
| HII_DEPENDENCY_EXPRESSION *SubExpression; | |
| } HII_DEPENDENCY_QUESTION_REF3; | |
| /// | |
| /// Definition of HII_DEPENDENCY_TO_BOOLEAN | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *SubExpression; | |
| } HII_DEPENDENCY_TO_BOOLEAN; | |
| /// | |
| /// Definition of HII_DEPENDENCY_TO_STRING | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| UINT8 Format; | |
| HII_DEPENDENCY_EXPRESSION *SubExpression; | |
| } HII_DEPENDENCY_TO_STRING; | |
| /// | |
| /// Definition of HII_DEPENDENCY_TO_UINT | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *SubExpression; | |
| } HII_DEPENDENCY_TO_UINT; | |
| /// | |
| /// Definition of HII_DEPENDENCY_TO_UPPER | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *SubExpression; | |
| } HII_DEPENDENCY_TO_UPPER; | |
| /// | |
| /// Definition of HII_DEPENDENCY_TO_LOWER | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *SubExpression; | |
| } HII_DEPENDENCY_TO_LOWER; | |
| /// | |
| /// Definition of HII_DEPENDENCY_SET | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_FORMSET_STORAGE *VarStorage; | |
| HII_VAR_STORE_INFO VarStoreInfo; | |
| UINT8 ValueType; | |
| UINT8 ValueWidth; | |
| CHAR16 *ValueName; | |
| HII_DEPENDENCY_EXPRESSION *SubExpression; | |
| } HII_DEPENDENCY_SET; | |
| /// | |
| /// Definition of HII_DEPENDENCY_NOT | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *SubExpression; | |
| } HII_DEPENDENCY_NOT; | |
| /// | |
| /// Definition of HII_DEPENDENCY_CATENATE | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *LeftStringExp; | |
| HII_DEPENDENCY_EXPRESSION *RightStringExp; | |
| } HII_DEPENDENCY_CATENATE; | |
| /// | |
| /// Definition of HII_DEPENDENCY_MATCH | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *StringExp; | |
| HII_DEPENDENCY_EXPRESSION *PatternExp; | |
| } HII_DEPENDENCY_MATCH; | |
| /// | |
| /// Definition of HII_DEPENDENCY_MATCH2 | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| EFI_GUID SyntaxType; | |
| HII_DEPENDENCY_EXPRESSION *StringExp; | |
| HII_DEPENDENCY_EXPRESSION *PatternExp; | |
| } HII_DEPENDENCY_MATCH2; | |
| /// | |
| /// Definition of HII_DEPENDENCY_MULT | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *RightHandExp; | |
| HII_DEPENDENCY_EXPRESSION *LeftHandExp; | |
| } HII_DEPENDENCY_MULT; | |
| /// | |
| /// Definition of HII_DEPENDENCY_DIV | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *RightHandExp; ///< right value | |
| HII_DEPENDENCY_EXPRESSION *LeftHandExp; ///< left value | |
| } HII_DEPENDENCY_DIV; | |
| /// | |
| /// Definition of HII_DEPENDENCY_MOD | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *RightHandExp; ///< right value | |
| HII_DEPENDENCY_EXPRESSION *LeftHandExp; ///< left value | |
| } HII_DEPENDENCY_MOD; | |
| /// | |
| /// Definition of HII_DEPENDENCY_ADD | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *RightHandExp; ///< right value | |
| HII_DEPENDENCY_EXPRESSION *LeftHandExp; ///< left value | |
| } HII_DEPENDENCY_ADD; | |
| /// | |
| /// Definition of HII_DEPENDENCY_SUBTRACT | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *RightHandExp; ///< right value | |
| HII_DEPENDENCY_EXPRESSION *LeftHandExp; ///< left value | |
| } HII_DEPENDENCY_SUBTRACT; | |
| /// | |
| /// Definition of HII_DEPENDENCY_SHIFT_LEFT | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *RightHandExp; | |
| HII_DEPENDENCY_EXPRESSION *LeftHandExp; | |
| } HII_DEPENDENCY_SHIFT_LEFT; | |
| /// | |
| /// Definition of HII_DEPENDENCY_SHIFT_RIGHT | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *RightHandExp; | |
| HII_DEPENDENCY_EXPRESSION *LeftHandExp; | |
| } HII_DEPENDENCY_SHIFT_RIGHT; | |
| /// | |
| /// Definition of HII_DEPENDENCY_GREATER_THAN | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *RightHandExp; | |
| HII_DEPENDENCY_EXPRESSION *LeftHandExp; | |
| } HII_DEPENDENCY_GREATER_THAN; | |
| /// | |
| /// Definition of HII_DEPENDENCY_GREATER_EQUAL | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *RightHandExp; | |
| HII_DEPENDENCY_EXPRESSION *LeftHandExp; | |
| } HII_DEPENDENCY_GREATER_EQUAL; | |
| /// | |
| /// Definition of HII_DEPENDENCY_LESS_THAN | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *RightHandExp; | |
| HII_DEPENDENCY_EXPRESSION *LeftHandExp; | |
| } HII_DEPENDENCY_LESS_THAN; | |
| /// | |
| /// Definition of HII_DEPENDENCY_LESS_EQUAL | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *RightHandExp; | |
| HII_DEPENDENCY_EXPRESSION *LeftHandExp; | |
| } HII_DEPENDENCY_LESS_EQUAL; | |
| /// | |
| /// Definition of HII_DEPENDENCY_EQUAL | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *SubExpression1; | |
| HII_DEPENDENCY_EXPRESSION *SubExpression2; | |
| } HII_DEPENDENCY_EQUAL; | |
| /// | |
| /// Definition of HII_DEPENDENCY_NOT_EQUAL | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *SubExpression1; | |
| HII_DEPENDENCY_EXPRESSION *SubExpression2; | |
| } HII_DEPENDENCY_NOT_EQUAL; | |
| /// | |
| /// Definition of HII_DEPENDENCY_BITWISE_AND | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *SubExpression1; | |
| HII_DEPENDENCY_EXPRESSION *SubExpression2; | |
| } HII_DEPENDENCY_BITWISE_AND; | |
| /// | |
| /// Definition of HII_DEPENDENCY_BITWISE_OR | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *SubExpression1; | |
| HII_DEPENDENCY_EXPRESSION *SubExpression2; | |
| } HII_DEPENDENCY_BITWISE_OR; | |
| /// | |
| /// Definition of HII_DEPENDENCY_AND | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *SubExpression1; | |
| HII_DEPENDENCY_EXPRESSION *SubExpression2; | |
| } HII_DEPENDENCY_AND; | |
| /// | |
| /// Definition of HII_DEPENDENCY_OR | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *SubExpression1; | |
| HII_DEPENDENCY_EXPRESSION *SubExpression2; | |
| } HII_DEPENDENCY_OR; | |
| /// | |
| /// Definition of HII_DEPENDENCY_CONDITIONAL | |
| /// | |
| /// Ternary expression | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *CondTrueValExp; ///< right value | |
| HII_DEPENDENCY_EXPRESSION *CondFalseValExp; ///< middle value | |
| HII_DEPENDENCY_EXPRESSION *ConditionExp; ///< left value | |
| } HII_DEPENDENCY_CONDITIONAL; | |
| /// | |
| /// Definition of HII_DEPENDENCY_FIND | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| UINT8 Format; | |
| HII_DEPENDENCY_EXPRESSION *IndexExp; ///< right value | |
| HII_DEPENDENCY_EXPRESSION *StringToCompWithExp; ///< middle value | |
| HII_DEPENDENCY_EXPRESSION *StringToSearchExp; ///< left value | |
| } HII_DEPENDENCY_FIND; | |
| /// | |
| /// Definition of HII_DEPENDENCY_MID | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *LengthExp; ///< right value | |
| HII_DEPENDENCY_EXPRESSION *IndexExp; ///< middle value | |
| HII_DEPENDENCY_EXPRESSION *StringOrBufferExp; ///< left value | |
| } HII_DEPENDENCY_MID; | |
| /// | |
| /// Definition of HII_DEPENDENCY_TOKEN | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *IndexExp; ///< right value | |
| HII_DEPENDENCY_EXPRESSION *DelimiterExp; ///< middle value | |
| HII_DEPENDENCY_EXPRESSION *StringToSearchExp; ///< left value | |
| } HII_DEPENDENCY_TOKEN; | |
| /// | |
| /// Definition of HII_DEPENDENCY_SPAN | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| UINT8 Flags; | |
| HII_DEPENDENCY_EXPRESSION *IndexExp; ///< right value | |
| HII_DEPENDENCY_EXPRESSION *CharsetExp; ///< middle value | |
| HII_DEPENDENCY_EXPRESSION *StringToSearchExp; ///< left value | |
| } HII_DEPENDENCY_SPAN; | |
| /// | |
| /// Map expression | |
| /// | |
| typedef struct { | |
| HII_DEPENDENCY_EXPRESSION *MatchExp; | |
| HII_DEPENDENCY_EXPRESSION *ReturnExp; | |
| } HII_DEPENDENCY_EXPRESSION_PAIR; | |
| /// | |
| /// Definition of HII_DEPENDENCY_MAP | |
| /// | |
| typedef struct { | |
| UINT8 Operand; | |
| HII_DEPENDENCY_EXPRESSION *SubExp; | |
| HII_DEPENDENCY_EXPRESSION_PAIR *ExpPair; | |
| UINT8 ExpPairNo; | |
| } HII_DEPENDENCY_MAP; | |
| /// | |
| /// Definition of HII_DEPENDENCY_EXPRESSION | |
| /// | |
| union _HII_DEPENDENCY_EXPRESSION { | |
| /// | |
| /// Constant | |
| /// | |
| HII_EXPRESSION_CONSTANT ConstantExp; | |
| /// | |
| /// build-in expression | |
| /// | |
| HII_DEPENDENCY_DUP DupExp; | |
| HII_DEPENDENCY_EQ_ID_VAL EqIdValExp; | |
| HII_DEPENDENCY_EQ_ID_ID EqIdIdExp; | |
| HII_DEPENDENCY_EQ_ID_VAL_LIST EqIdListExp; | |
| HII_DEPENDENCY_QUESTION_REF1 QuestionRef1Exp; | |
| HII_DEPENDENCY_RULE_REF RuleRefExp; | |
| HII_DEPENDENCY_STRING_REF1 StringRef1Exp; | |
| HII_DEPENDENCY_THIS ThisExp; | |
| HII_DEPENDENCY_SECURITY SecurityExp; | |
| HII_DEPENDENCY_GET GetExp; | |
| /// | |
| /// unary expression | |
| /// | |
| HII_DEPENDENCY_LENGTH LengthExp; | |
| HII_DEPENDENCY_BITWISE_NOT BitWiseNotExp; | |
| HII_DEPENDENCY_STRING_REF2 StringRef2Exp; | |
| HII_DEPENDENCY_QUESTION_REF2 QuestionRef2Exp; | |
| HII_DEPENDENCY_QUESTION_REF3 QuestionRef3Exp; | |
| HII_DEPENDENCY_TO_BOOLEAN ToBooleanExp; | |
| HII_DEPENDENCY_TO_STRING ToStringExp; | |
| HII_DEPENDENCY_TO_UINT ToUintExp; | |
| HII_DEPENDENCY_TO_UPPER ToUpperExp; | |
| HII_DEPENDENCY_TO_LOWER ToLowerExp; | |
| HII_DEPENDENCY_SET SetExp; | |
| HII_DEPENDENCY_NOT NotExp; | |
| /// | |
| /// Binary expression | |
| /// | |
| HII_DEPENDENCY_CATENATE CatenateExp; | |
| HII_DEPENDENCY_MATCH MatchExp; | |
| HII_DEPENDENCY_MATCH2 Match2Exp; | |
| HII_DEPENDENCY_MULT MultExp; | |
| HII_DEPENDENCY_DIV DivExp; | |
| HII_DEPENDENCY_MOD ModExp; | |
| HII_DEPENDENCY_ADD AddExp; | |
| HII_DEPENDENCY_SUBTRACT SubtractExp; | |
| HII_DEPENDENCY_SHIFT_LEFT ShiftLeftExp; | |
| HII_DEPENDENCY_SHIFT_RIGHT ShiftRightExp; | |
| HII_DEPENDENCY_GREATER_THAN GreaterThanExp; | |
| HII_DEPENDENCY_GREATER_EQUAL GreaterEqualExp; | |
| HII_DEPENDENCY_LESS_THAN LessThanExp; | |
| HII_DEPENDENCY_LESS_EQUAL LessEqualExp; | |
| HII_DEPENDENCY_EQUAL EqualExp; | |
| HII_DEPENDENCY_NOT_EQUAL NotEqualExp; | |
| HII_DEPENDENCY_BITWISE_AND BitwiseAndExp; | |
| HII_DEPENDENCY_BITWISE_OR BitwiseOrExp; | |
| HII_DEPENDENCY_AND AndExp; | |
| HII_DEPENDENCY_OR OrExp; | |
| /// | |
| /// ternary expression | |
| /// | |
| HII_DEPENDENCY_CONDITIONAL ConditionalExp; | |
| HII_DEPENDENCY_FIND FindExp; | |
| HII_DEPENDENCY_MID MidExp; | |
| HII_DEPENDENCY_TOKEN TokenExp; | |
| HII_DEPENDENCY_SPAN SpanExp; | |
| HII_DEPENDENCY_MAP MapExp; | |
| }; | |
| /// | |
| /// Definition of HII_EXPRESSION_OPCODE | |
| /// | |
| typedef struct { | |
| UINTN Signature; | |
| LIST_ENTRY Link; | |
| UINT8 Operand; | |
| HII_EXPRESSION_OPCODE_EXTRA ExtraData; | |
| LIST_ENTRY MapExpressionList; ///< nested expressions inside of Map opcode. | |
| } HII_EXPRESSION_OPCODE; | |
| #define HII_EXPRESSION_OPCODE_SIGNATURE SIGNATURE_32 ('E', 'X', 'O', 'P') | |
| #define HII_EXPRESSION_OPCODE_FROM_LINK(a) CR (a, HII_EXPRESSION_OPCODE, Link, HII_EXPRESSION_OPCODE_SIGNATURE) | |
| /// | |
| /// Definition of HII_WARNING_IF_DATA | |
| /// | |
| typedef struct { | |
| EFI_STRING_ID WarningIfError; | |
| UINT8 TimeOut; | |
| } HII_WARNING_IF_DATA; | |
| /// | |
| /// Definition of HII_EXTRA_DATA | |
| /// | |
| typedef union { | |
| UINT8 RuleId; ///< For EFI_IFR_RULE only | |
| EFI_STRING_ID Error; ///< For EFI_IFR_NO_SUBMIT_IF, EFI_IFR_INCONSISTENT_IF only | |
| HII_WARNING_IF_DATA WarningIfData; | |
| } HII_EXTRA_DATA; | |
| /// | |
| /// Definition of HII_EXPRESSION | |
| /// | |
| typedef struct { | |
| UINTN Signature; | |
| LIST_ENTRY Link; | |
| UINT8 Type; ///< Type for this expression | |
| EFI_IFR_OP_HEADER *OpCode; ///< Save the opcode buffer. | |
| LIST_ENTRY OpCodeListHead; ///< OpCodes consist of this expression (HII_EXPRESSION_OPCODE) | |
| HII_DEPENDENCY_EXPRESSION *RootDependencyExp; ///< Expression OpCodes tree layout to describe dependency of this expression. | |
| HII_EXTRA_DATA ExtraData; | |
| EFI_HII_VALUE Result; ///< Expression evaluation result | |
| } HII_EXPRESSION; | |
| #define HII_EXPRESSION_SIGNATURE SIGNATURE_32 ('F', 'E', 'X', 'P') | |
| #define HII_EXPRESSION_FROM_LINK(a) CR (a, HII_EXPRESSION, Link, HII_EXPRESSION_SIGNATURE) | |
| /// | |
| /// Definition of HII_EXPRESSION_LIST | |
| /// | |
| typedef struct { | |
| UINTN Signature; | |
| UINTN Count; | |
| HII_EXPRESSION *Expression[1]; ///< Array[Count] of expressions | |
| } HII_EXPRESSION_LIST; | |
| #define HII_EXPRESSION_LIST_SIGNATURE SIGNATURE_32 ('F', 'E', 'X', 'R') | |
| /// | |
| /// Definition of HII_STATEMENT_VALUE | |
| /// | |
| typedef struct { | |
| /// | |
| /// HII Data Type | |
| /// | |
| UINT8 Type; | |
| EFI_IFR_TYPE_VALUE Value; | |
| /// | |
| /// Buffer Data and Length if Type is EFI_IFR_TYPE_BUFFER or EFI_IFR_TYPE_STRING | |
| /// | |
| UINT8 *Buffer; | |
| UINT16 BufferLen; | |
| UINT8 BufferValueType; ///< Data type for buffer internal data, currently only for orderedlist | |
| } HII_STATEMENT_VALUE; | |
| /// | |
| /// Default value | |
| /// | |
| typedef struct { | |
| UINTN Signature; | |
| LIST_ENTRY Link; | |
| UINT16 DefaultId; | |
| HII_STATEMENT_VALUE Value; ///< Default value | |
| HII_EXPRESSION *ValueExpression; ///< Not-NULL indicates default value is provided by EFI_IFR_VALUE | |
| } HII_QUESTION_DEFAULT; | |
| #define HII_QUESTION_DEFAULT_SIGNATURE SIGNATURE_32 ('Q', 'D', 'F', 'T') | |
| #define HII_QUESTION_DEFAULT_FROM_LINK(a) CR (a, HII_QUESTION_DEFAULT, Link, HII_QUESTION_DEFAULT_SIGNATURE) | |
| #define HII_QUESTION_OPTION_SIGNATURE SIGNATURE_32 ('Q', 'O', 'P', 'T') | |
| /// | |
| /// Option value | |
| /// | |
| typedef struct { | |
| UINTN Signature; | |
| LIST_ENTRY Link; | |
| EFI_IFR_ONE_OF_OPTION *OpCode; ///< OneOfOption Data | |
| EFI_STRING_ID Text; | |
| UINT8 Flags; | |
| HII_STATEMENT_VALUE Value; | |
| EFI_IMAGE_ID ImageId; | |
| HII_EXPRESSION_LIST *SuppressExpression; ///< Non-NULL indicates nested inside of SuppressIf | |
| } HII_QUESTION_OPTION; | |
| #define HII_QUESTION_OPTION_FROM_LINK(a) CR (a, HII_QUESTION_OPTION, Link, HII_QUESTION_OPTION_SIGNATURE) | |
| /// | |
| /// class of default | |
| /// | |
| typedef struct { | |
| UINTN Signature; | |
| LIST_ENTRY Link; | |
| UINT16 DefaultId; | |
| EFI_STRING_ID DefaultName; | |
| } HII_FORMSET_DEFAULTSTORE; | |
| #define HII_FORMSET_DEFAULTSTORE_SIGNATURE SIGNATURE_32 ('F', 'D', 'F', 'S') | |
| #define HII_FORMSET_DEFAULTSTORE_FROM_LINK(a) CR (a, HII_FORMSET_DEFAULTSTORE, Link, HII_FORMSET_DEFAULTSTORE_SIGNATURE) | |
| /// | |
| /// Definition of HII_STATEMENT_EXTRA | |
| /// | |
| typedef union { | |
| UINT8 Flags; | |
| EFI_STRING_ID TextTwo; | |
| EFI_DEFAULT_ID DefaultId; | |
| EFI_STRING_ID QuestionConfig; | |
| EFI_GUID Guid; | |
| struct { | |
| UINT8 Flags; | |
| UINT64 Minimum; ///< for EFI_IFR_ONE_OF/EFI_IFR_NUMERIC, it's Min/Max value | |
| UINT64 Maximum; ///< for EFI_IFR_STRING/EFI_IFR_PASSWORD, it's Min/Max length | |
| UINT64 Step; | |
| EFI_GUID Guid; | |
| } NumData; | |
| struct { | |
| UINT8 Flags; | |
| UINT8 MaxContainers; ///< for EFI_IFR_ORDERED_LIST | |
| } OrderListData; | |
| struct { | |
| UINT8 Flags; | |
| UINT8 MinSize; | |
| UINT8 MaxSize; | |
| } StrData; | |
| struct { | |
| UINT16 MinSize; | |
| UINT16 MaxSize; | |
| } PwdData; | |
| } HII_STATEMENT_EXTRA; | |
| /// | |
| /// Statement (Question) | |
| /// | |
| typedef struct _HII_STATEMENT HII_STATEMENT; | |
| struct _HII_STATEMENT { | |
| UINTN Signature; | |
| LIST_ENTRY Link; | |
| UINT8 Operand; ///< The operand (first byte) of this Statement or Question | |
| EFI_IFR_OP_HEADER *OpCode; | |
| /// | |
| /// Statement Header | |
| /// | |
| EFI_STRING_ID Prompt; | |
| EFI_STRING_ID Help; | |
| /// | |
| /// Question Header | |
| /// | |
| EFI_QUESTION_ID QuestionId; ///< Question id, the value of zero is reserved | |
| EFI_VARSTORE_ID VarStoreId; ///< VarStore id, a value of zero indicates no variable storage | |
| HII_VAR_STORE_INFO VarStoreInfo; ///< VarStoreInfoIf VarStoreId refers to Buffer Storage (EFI_IFR_VARSTORE or EFI_IFR_VARSTORE_EFI), then VarStoreInfo contains a 16-bit Buffer Storage offset (VarOffset). | |
| ///< If VarStoreId refers to Name/Value Storage (EFI_IFR_VARSTORE_NAME_VALUE), then VarStoreInfo contains the String ID of the name (VarName) for this name/value pair. | |
| UINT8 QuestionFlags; ///< The flag of this Question.(Readonly, reset required, callback attribute....) | |
| BOOLEAN QuestionReferToBitField; ///< Whether the question is stored in a bit field. | |
| UINT16 StorageWidth; ///< The storage width of this Question. | |
| UINT16 BitStorageWidth; ///< The Storage width of this Question in bit level. | |
| UINT16 BitVarOffset; ///< The storage offset of this Question in bit level. | |
| CHAR16 *VariableName; ///< Name/Value or EFI Variable name | |
| CHAR16 *BlockName; ///< Buffer storage block name: "OFFSET=...WIDTH=..." | |
| HII_FORMSET_STORAGE *Storage; ///< Point to the storage that store this question. | |
| HII_STATEMENT_EXTRA ExtraData; | |
| BOOLEAN Locked; ///< Whether this statement is locked. | |
| HII_STATEMENT_VALUE Value; | |
| /// | |
| /// Get from IFR parsing | |
| /// | |
| HII_STATEMENT *ParentStatement; ///< Parent Statement of current statement. | |
| HII_EXPRESSION_LIST *ExpressionList; ///< nesting inside of GrayedOutIf/DisableIf/SuppressIf | |
| HII_EXPRESSION *ValueExpression; ///< nested EFI_IFR_VALUE, provide Question value and indicate Question is ReadOnly | |
| EFI_IMAGE_ID ImageId; ///< nested EFI_IFR_IMAGE | |
| UINT8 RefreshInterval; ///< nested EFI_IFR_REFRESH, refresh interval(in seconds) for Question value, 0 means no refresh | |
| LIST_ENTRY DefaultListHead; ///< nested EFI_IFR_DEFAULT list (HII_QUESTION_DEFAULT), provide default values | |
| LIST_ENTRY OptionListHead; ///< nested EFI_IFR_ONE_OF_OPTION list (HII_QUESTION_OPTION) | |
| LIST_ENTRY InconsistentListHead; ///< nested inconsistent expression list (HII_EXPRESSION) | |
| LIST_ENTRY NoSubmitListHead; ///< nested nosubmit expression list (HII_EXPRESSION) | |
| LIST_ENTRY WarningListHead; ///< nested warning expression list (HII_EXPRESSION) | |
| HII_EXPRESSION *ReadExpression; ///< nested EFI_IFR_READ, provide this question value by read expression. | |
| HII_EXPRESSION *WriteExpression; ///< nested EFI_IFR_WRITE, evaluate write expression after this question value is set. | |
| }; | |
| #define HII_STATEMENT_SIGNATURE SIGNATURE_32 ('H', 'S', 'T', 'A') | |
| #define HII_STATEMENT_FROM_LINK(a) CR (a, HII_STATEMENT, Link, HII_STATEMENT_SIGNATURE) | |
| /// | |
| /// Form | |
| /// | |
| #define STANDARD_MAP_FORM_TYPE 0x01 | |
| typedef struct { | |
| UINTN Signature; | |
| LIST_ENTRY Link; | |
| UINT16 FormId; ///< FormId of normal form or formmap form. | |
| EFI_STRING_ID FormTitle; ///< FormTile of normal form, or FormMapMethod title of formmap form. | |
| UINT16 FormType; ///< Specific form type for the different form. | |
| EFI_IMAGE_ID ImageId; ///< The image id. | |
| BOOLEAN ModalForm; ///< Whether this is a modal form. | |
| BOOLEAN Locked; ///< Whether this form is locked. | |
| EFI_GUID RefreshGuid; ///< Form refresh event guid. | |
| LIST_ENTRY StatementListHead; ///< List of Statements and Questions (HII_STATEMENT) | |
| LIST_ENTRY ConfigRequestHead; ///< List of configrequest for all storage. | |
| LIST_ENTRY RuleListHead; ///< nested EFI_IFR_RULE list, pre-defined expressions attached to the form. | |
| HII_EXPRESSION_LIST *SuppressExpression; ///< nesting inside of SuppressIf | |
| } HII_FORM; | |
| #define HII_FORM_SIGNATURE SIGNATURE_32 ('F', 'F', 'R', 'M') | |
| #define HII_FORM_FROM_LINK(a) CR (a, HII_FORM, Link, HII_FORM_SIGNATURE) | |
| /// | |
| /// FormSet | |
| /// | |
| typedef struct { | |
| UINTN Signature; | |
| LIST_ENTRY Link; | |
| EFI_HII_HANDLE HiiHandle; ///< Unique id for formset, HII Handle of this FormSet package. | |
| EFI_HANDLE DriverHandle; ///< EFI_HANDLE which was registered with the package list in NewPackageList(). | |
| EFI_HII_CONFIG_ACCESS_PROTOCOL *ConfigAccess; ///< ConfigAccess Protocol associated with this HiiPackageList | |
| EFI_DEVICE_PATH_PROTOCOL *DevicePath; | |
| UINTN IfrBinaryLength; ///< Ifr binary data length of this formset. | |
| UINT8 *IfrBinaryData; ///< Point to the Ifr binary data. | |
| EFI_GUID Guid; ///< Formset Guid. | |
| EFI_STRING_ID FormSetTitle; ///< String Id of Formset title. | |
| EFI_STRING_ID Help; ///< String Id of Formset title. | |
| UINT8 NumberOfClassGuid; ///< Class Guid name | |
| EFI_GUID ClassGuid[3]; ///< Up to three ClassGuid | |
| EFI_IMAGE_ID ImageId; ///< The image id. | |
| LIST_ENTRY StatementListOSF; ///< Statement list out side of the form. | |
| LIST_ENTRY StorageListHead; ///< Storage list (HII_FORMSET_STORAGE) | |
| LIST_ENTRY DefaultStoreListHead; ///< DefaultStore list (HII_FORMSET_DEFAULTSTORE) | |
| LIST_ENTRY FormListHead; ///< Form list (HII_FORM_BROWSER_FORM) | |
| } HII_FORMSET; | |
| #define HII_FORMSET_SIGNATURE SIGNATURE_32 ('H', 'I', 'F', 'S') | |
| #define HII_FORMSET_FROM_LINK(a) CR (a, HII_FORMSET, Link, HII_FORMSET_SIGNATURE) | |
| /// | |
| /// Get/set question value from/to. | |
| /// | |
| typedef enum { | |
| GetSetValueWithBuffer = 0, ///< Get/Set question value from/to buffer in the storage. | |
| GetSetValueWithHiiDriver, ///< Get/Set question value from/to hii driver. | |
| GetSetValueWithBoth, ///< Compare the editbuffer with buffer for this question, not use the question value. | |
| GetSetValueWithMax ///< Invalid value. | |
| } GET_SET_QUESTION_VALUE_WITH; | |
| /** | |
| Initialize the internal data structure of a FormSet. | |
| @param[in] Handle PackageList Handle | |
| @param[in,out] FormSetGuid On input, GUID or class GUID of a formset. If not | |
| specified (NULL or zero GUID), take the first | |
| FormSet with class GUID EFI_HII_PLATFORM_SETUP_FORMSET_GUID | |
| found in package list. | |
| On output, GUID of the formset found(if not NULL). | |
| @param[out] FormSet FormSet data structure. | |
| @retval EFI_SUCCESS The function completed successfully. | |
| @retval EFI_NOT_FOUND The specified FormSet could not be found. | |
| **/ | |
| EFI_STATUS | |
| CreateFormSetFromHiiHandle ( | |
| IN EFI_HII_HANDLE Handle, | |
| IN OUT EFI_GUID *FormSetGuid, | |
| OUT HII_FORMSET *FormSet | |
| ); | |
| /** | |
| Initialize a Formset and get current setting for Questions. | |
| @param[in,out] FormSet FormSet data structure. | |
| **/ | |
| VOID | |
| InitializeFormSet ( | |
| IN OUT HII_FORMSET *FormSet | |
| ); | |
| /** | |
| Free resources allocated for a FormSet. | |
| @param[in,out] FormSet Pointer of the FormSet | |
| **/ | |
| VOID | |
| DestroyFormSet ( | |
| IN OUT HII_FORMSET *FormSet | |
| ); | |
| /** | |
| Save Question Value to the memory, but not to storage. | |
| @param[in] FormSet FormSet data structure. | |
| @param[in] Form Form data structure. | |
| @param[in,out] Question Pointer to the Question. | |
| @param[in] QuestionValue New Question Value to be set. | |
| @retval EFI_SUCCESS The question value has been set successfully. | |
| @retval EFI_INVALID_PARAMETER One or more parameters are invalid. | |
| **/ | |
| EFI_STATUS | |
| SetQuestionValue ( | |
| IN HII_FORMSET *FormSet, | |
| IN HII_FORM *Form, | |
| IN OUT HII_STATEMENT *Question, | |
| IN HII_STATEMENT_VALUE *QuestionValue | |
| ); | |
| /** | |
| Get Question's current Value from storage. | |
| @param[in] FormSet FormSet data structure. | |
| @param[in] Form Form data structure. | |
| @param[in,out] Question Question to be initialized. | |
| @return the current Question Value in storage if success. | |
| @return NULL if Question is not found or any error occurs. | |
| **/ | |
| HII_STATEMENT_VALUE * | |
| RetrieveQuestion ( | |
| IN HII_FORMSET *FormSet, | |
| IN HII_FORM *Form, | |
| IN OUT HII_STATEMENT *Question | |
| ); | |
| /** | |
| Get Question's current Value. | |
| @param[in] FormSet FormSet data structure. | |
| @param[in] Form Form data structure. | |
| @param[out] Question Question to be initialized. | |
| @param[in] GetValueFrom Where to get value, may from editbuffer, buffer or hii driver. | |
| @retval EFI_SUCCESS The function completed successfully. | |
| @retval EFI_INVALID_PARAMETER Formset, Form or Question is NULL. | |
| **/ | |
| EFI_STATUS | |
| GetQuestionValue ( | |
| IN HII_FORMSET *FormSet, | |
| IN HII_FORM *Form, | |
| IN OUT HII_STATEMENT *Question, | |
| IN GET_SET_QUESTION_VALUE_WITH GetValueFrom | |
| ); | |
| /** | |
| Submit data for a form. | |
| @param[in] FormSet FormSet which contains the Form. | |
| @param[in] Form Form to submit. | |
| @retval EFI_SUCCESS The function completed successfully. | |
| @retval Others Other errors occur. | |
| **/ | |
| EFI_STATUS | |
| SubmitForm ( | |
| IN HII_FORMSET *FormSet, | |
| IN HII_FORM *Form | |
| ); | |
| /** | |
| Evaluate the result of a HII expression. | |
| If Expression is NULL, then ASSERT. | |
| @param[in] FormSet FormSet associated with this expression. | |
| @param[in] Form Form associated with this expression. | |
| @param[in,out] Expression Expression to be evaluated. | |
| @retval EFI_SUCCESS The expression evaluated successfully | |
| @retval EFI_NOT_FOUND The Question which referenced by a QuestionId | |
| could not be found. | |
| @retval EFI_OUT_OF_RESOURCES There is not enough system memory to grow the | |
| stack. | |
| @retval EFI_ACCESS_DENIED The pop operation underflowed the stack | |
| @retval EFI_INVALID_PARAMETER Syntax error with the Expression | |
| **/ | |
| EFI_STATUS | |
| EvaluateHiiExpression ( | |
| IN HII_FORMSET *FormSet, | |
| IN HII_FORM *Form, | |
| IN OUT HII_EXPRESSION *Expression | |
| ); | |
| /** | |
| Retrieve dependencies within an expression. These dependencies can express how | |
| this expression will be evaluated. | |
| @param[in] Expression Expression to retrieve dependencies. | |
| @retval EFI_SUCCESS The dependencies were successfully retrieved. | |
| @retval EFI_OUT_OF_RESOURCES There is not enough system memory. | |
| **/ | |
| EFI_STATUS | |
| GetHiiExpressionDependency ( | |
| IN HII_EXPRESSION *Expression | |
| ); | |
| /** | |
| Get default value of question. | |
| @param[in] FormSet The form set. | |
| @param[in] Form The form. | |
| @param[in] Question The question. | |
| @param[in] DefaultId The Class of the default. | |
| @param[out] DefaultValue The default value of given question. | |
| @retval EFI_SUCCESS Question is reset to default value. | |
| **/ | |
| EFI_STATUS | |
| GetQuestionDefault ( | |
| IN HII_FORMSET *FormSet, | |
| IN HII_FORM *Form, | |
| IN HII_STATEMENT *Question, | |
| IN UINT16 DefaultId, | |
| OUT HII_STATEMENT_VALUE *DefaultValue | |
| ); | |
| /** | |
| Return the result of the expression list. Check the expression list and | |
| return the highest priority express result. | |
| Priority: DisableIf > SuppressIf > GrayOutIf > FALSE | |
| @param[in] ExpList The input expression list. | |
| @param[in] Evaluate Whether need to evaluate the expression first. | |
| @param[in] FormSet FormSet associated with this expression. | |
| @param[in] Form Form associated with this expression. | |
| @retval EXPRESS_RESULT Return the higher priority express result. | |
| DisableIf > SuppressIf > GrayOutIf > FALSE | |
| **/ | |
| EXPRESS_RESULT | |
| EvaluateExpressionList ( | |
| IN HII_EXPRESSION_LIST *ExpList, | |
| IN BOOLEAN Evaluate, | |
| IN HII_FORMSET *FormSet OPTIONAL, | |
| IN HII_FORM *Form OPTIONAL | |
| ); | |
| #endif // HII_UTILITY_LIB_ |