]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/SetupBrowserDxe/Expression.c
MdeModulePkg: Apply uncrustify changes
[mirror_edk2.git] / MdeModulePkg / Universal / SetupBrowserDxe / Expression.c
index fa583caa3898a2fffafdc64d87f3c043a3e78249..d21930b31a0794fa234622444407c7040355d96c 100644 (file)
@@ -11,41 +11,40 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 //\r
 // Global stack used to evaluate boolean expresions\r
 //\r
-EFI_HII_VALUE *mOpCodeScopeStack = NULL;\r
-EFI_HII_VALUE *mOpCodeScopeStackEnd = NULL;\r
-EFI_HII_VALUE *mOpCodeScopeStackPointer = NULL;\r
+EFI_HII_VALUE  *mOpCodeScopeStack        = NULL;\r
+EFI_HII_VALUE  *mOpCodeScopeStackEnd     = NULL;\r
+EFI_HII_VALUE  *mOpCodeScopeStackPointer = NULL;\r
 \r
-EFI_HII_VALUE *mExpressionEvaluationStack = NULL;\r
-EFI_HII_VALUE *mExpressionEvaluationStackEnd = NULL;\r
-EFI_HII_VALUE *mExpressionEvaluationStackPointer = NULL;\r
-UINTN         mExpressionEvaluationStackOffset = 0;\r
+EFI_HII_VALUE  *mExpressionEvaluationStack        = NULL;\r
+EFI_HII_VALUE  *mExpressionEvaluationStackEnd     = NULL;\r
+EFI_HII_VALUE  *mExpressionEvaluationStackPointer = NULL;\r
+UINTN          mExpressionEvaluationStackOffset   = 0;\r
 \r
-EFI_HII_VALUE *mCurrentExpressionStack = NULL;\r
-EFI_HII_VALUE *mCurrentExpressionEnd = NULL;\r
-EFI_HII_VALUE *mCurrentExpressionPointer = NULL;\r
+EFI_HII_VALUE  *mCurrentExpressionStack   = NULL;\r
+EFI_HII_VALUE  *mCurrentExpressionEnd     = NULL;\r
+EFI_HII_VALUE  *mCurrentExpressionPointer = NULL;\r
 \r
-EFI_HII_VALUE *mMapExpressionListStack = NULL;\r
-EFI_HII_VALUE *mMapExpressionListEnd = NULL;\r
-EFI_HII_VALUE *mMapExpressionListPointer = NULL;\r
+EFI_HII_VALUE  *mMapExpressionListStack   = NULL;\r
+EFI_HII_VALUE  *mMapExpressionListEnd     = NULL;\r
+EFI_HII_VALUE  *mMapExpressionListPointer = NULL;\r
 \r
-FORM_EXPRESSION   **mFormExpressionStack = NULL;\r
-FORM_EXPRESSION   **mFormExpressionEnd = NULL;\r
-FORM_EXPRESSION   **mFormExpressionPointer = NULL;\r
+FORM_EXPRESSION  **mFormExpressionStack   = NULL;\r
+FORM_EXPRESSION  **mFormExpressionEnd     = NULL;\r
+FORM_EXPRESSION  **mFormExpressionPointer = NULL;\r
 \r
-FORM_EXPRESSION   **mStatementExpressionStack = NULL;\r
-FORM_EXPRESSION   **mStatementExpressionEnd = NULL;\r
-FORM_EXPRESSION   **mStatementExpressionPointer = NULL;\r
-\r
-FORM_EXPRESSION   **mOptionExpressionStack = NULL;\r
-FORM_EXPRESSION   **mOptionExpressionEnd = NULL;\r
-FORM_EXPRESSION   **mOptionExpressionPointer = NULL;\r
+FORM_EXPRESSION  **mStatementExpressionStack   = NULL;\r
+FORM_EXPRESSION  **mStatementExpressionEnd     = NULL;\r
+FORM_EXPRESSION  **mStatementExpressionPointer = NULL;\r
 \r
+FORM_EXPRESSION  **mOptionExpressionStack   = NULL;\r
+FORM_EXPRESSION  **mOptionExpressionEnd     = NULL;\r
+FORM_EXPRESSION  **mOptionExpressionPointer = NULL;\r
 \r
 //\r
 // Unicode collation protocol interface\r
 //\r
-EFI_UNICODE_COLLATION_PROTOCOL *mUnicodeCollation = NULL;\r
-EFI_USER_MANAGER_PROTOCOL      *mUserManager = NULL;\r
+EFI_UNICODE_COLLATION_PROTOCOL  *mUnicodeCollation = NULL;\r
+EFI_USER_MANAGER_PROTOCOL       *mUserManager      = NULL;\r
 \r
 /**\r
   Grow size of the stack.\r
@@ -68,7 +67,7 @@ GrowStack (
   IN OUT EFI_HII_VALUE  **StackEnd\r
   )\r
 {\r
-  UINTN           Size;\r
+  UINTN          Size;\r
   EFI_HII_VALUE  *NewStack;\r
 \r
   Size = EXPRESSION_STACK_SIZE_INCREMENT;\r
@@ -107,7 +106,6 @@ GrowStack (
   return EFI_SUCCESS;\r
 }\r
 \r
-\r
 /**\r
   Push an element onto the Boolean Stack.\r
 \r
@@ -122,10 +120,10 @@ GrowStack (
 **/\r
 EFI_STATUS\r
 PushStack (\r
-  IN OUT EFI_HII_VALUE       **Stack,\r
-  IN OUT EFI_HII_VALUE       **StackPtr,\r
-  IN OUT EFI_HII_VALUE       **StackEnd,\r
-  IN EFI_HII_VALUE           *Data\r
+  IN OUT EFI_HII_VALUE  **Stack,\r
+  IN OUT EFI_HII_VALUE  **StackPtr,\r
+  IN OUT EFI_HII_VALUE  **StackEnd,\r
+  IN EFI_HII_VALUE      *Data\r
   )\r
 {\r
   EFI_STATUS  Status;\r
@@ -148,7 +146,7 @@ PushStack (
   //\r
   CopyMem (*StackPtr, Data, sizeof (EFI_HII_VALUE));\r
   if (Data->Type == EFI_IFR_TYPE_BUFFER) {\r
-    (*StackPtr)->Buffer = AllocateCopyPool(Data->BufferLen, Data->Buffer);\r
+    (*StackPtr)->Buffer = AllocateCopyPool (Data->BufferLen, Data->Buffer);\r
     ASSERT ((*StackPtr)->Buffer != NULL);\r
   }\r
 \r
@@ -157,7 +155,6 @@ PushStack (
   return EFI_SUCCESS;\r
 }\r
 \r
-\r
 /**\r
   Pop an element from the stack.\r
 \r
@@ -171,9 +168,9 @@ PushStack (
 **/\r
 EFI_STATUS\r
 PopStack (\r
-  IN  EFI_HII_VALUE          *Stack,\r
-  IN OUT EFI_HII_VALUE       **StackPtr,\r
-  OUT EFI_HII_VALUE          *Data\r
+  IN  EFI_HII_VALUE     *Stack,\r
+  IN OUT EFI_HII_VALUE  **StackPtr,\r
+  OUT EFI_HII_VALUE     *Data\r
   )\r
 {\r
   //\r
@@ -191,7 +188,6 @@ PopStack (
   return EFI_SUCCESS;\r
 }\r
 \r
-\r
 /**\r
   Reset stack pointer to begin of the stack.\r
 \r
@@ -207,7 +203,6 @@ ResetCurrentExpressionStack (
   mOptionExpressionPointer    = mOptionExpressionStack;\r
 }\r
 \r
-\r
 /**\r
   Push current expression onto the Stack\r
 \r
@@ -224,18 +219,17 @@ PushCurrentExpression (
 {\r
   EFI_HII_VALUE  Data;\r
 \r
-  Data.Type = EFI_IFR_TYPE_NUM_SIZE_64;\r
-  Data.Value.u64 = (UINT64) (UINTN) Pointer;\r
+  Data.Type      = EFI_IFR_TYPE_NUM_SIZE_64;\r
+  Data.Value.u64 = (UINT64)(UINTN)Pointer;\r
 \r
   return PushStack (\r
-    &mCurrentExpressionStack,\r
-    &mCurrentExpressionPointer,\r
-    &mCurrentExpressionEnd,\r
-    &Data\r
-    );\r
+           &mCurrentExpressionStack,\r
+           &mCurrentExpressionPointer,\r
+           &mCurrentExpressionEnd,\r
+           &Data\r
+           );\r
 }\r
 \r
-\r
 /**\r
   Pop current expression from the Stack\r
 \r
@@ -247,19 +241,19 @@ PushCurrentExpression (
 **/\r
 EFI_STATUS\r
 PopCurrentExpression (\r
-  OUT VOID    **Pointer\r
+  OUT VOID  **Pointer\r
   )\r
 {\r
   EFI_STATUS     Status;\r
   EFI_HII_VALUE  Data;\r
 \r
   Status = PopStack (\r
-    mCurrentExpressionStack,\r
-    &mCurrentExpressionPointer,\r
-    &Data\r
-    );\r
+             mCurrentExpressionStack,\r
+             &mCurrentExpressionPointer,\r
+             &Data\r
+             );\r
 \r
-  *Pointer = (VOID *) (UINTN) Data.Value.u64;\r
+  *Pointer = (VOID *)(UINTN)Data.Value.u64;\r
 \r
   return Status;\r
 }\r
@@ -276,7 +270,6 @@ ResetMapExpressionListStack (
   mMapExpressionListPointer = mMapExpressionListStack;\r
 }\r
 \r
-\r
 /**\r
   Grow size of the stack.\r
 \r
@@ -294,14 +287,14 @@ ResetMapExpressionListStack (
 **/\r
 EFI_STATUS\r
 GrowConditionalStack (\r
-  IN OUT FORM_EXPRESSION   ***Stack,\r
-  IN OUT FORM_EXPRESSION   ***StackPtr,\r
-  IN OUT FORM_EXPRESSION   ***StackEnd,\r
-  IN     UINTN             MemberSize\r
+  IN OUT FORM_EXPRESSION  ***Stack,\r
+  IN OUT FORM_EXPRESSION  ***StackPtr,\r
+  IN OUT FORM_EXPRESSION  ***StackEnd,\r
+  IN     UINTN            MemberSize\r
   )\r
 {\r
-  UINTN             Size;\r
-  FORM_EXPRESSION   **NewStack;\r
+  UINTN            Size;\r
+  FORM_EXPRESSION  **NewStack;\r
 \r
   Size = EXPRESSION_STACK_SIZE_INCREMENT;\r
   if (*StackPtr != NULL) {\r
@@ -353,10 +346,10 @@ GrowConditionalStack (
 **/\r
 EFI_STATUS\r
 PushConditionalStack (\r
-  IN OUT FORM_EXPRESSION   ***Stack,\r
-  IN OUT FORM_EXPRESSION   ***StackPtr,\r
-  IN OUT FORM_EXPRESSION   ***StackEnd,\r
-  IN     FORM_EXPRESSION   **Data\r
+  IN OUT FORM_EXPRESSION  ***Stack,\r
+  IN OUT FORM_EXPRESSION  ***StackPtr,\r
+  IN OUT FORM_EXPRESSION  ***StackEnd,\r
+  IN     FORM_EXPRESSION  **Data\r
   )\r
 {\r
   EFI_STATUS  Status;\r
@@ -381,7 +374,6 @@ PushConditionalStack (
   *StackPtr = *StackPtr + 1;\r
 \r
   return EFI_SUCCESS;\r
-\r
 }\r
 \r
 /**\r
@@ -397,9 +389,9 @@ PushConditionalStack (
 **/\r
 EFI_STATUS\r
 PopConditionalStack (\r
-  IN     FORM_EXPRESSION   **Stack,\r
-  IN OUT FORM_EXPRESSION   ***StackPtr,\r
-  OUT    FORM_EXPRESSION   **Data\r
+  IN     FORM_EXPRESSION  **Stack,\r
+  IN OUT FORM_EXPRESSION  ***StackPtr,\r
+  OUT    FORM_EXPRESSION  **Data\r
   )\r
 {\r
   //\r
@@ -415,7 +407,6 @@ PopConditionalStack (
   *StackPtr = *StackPtr - 1;\r
   CopyMem (Data, *StackPtr, sizeof (FORM_EXPRESSION  *));\r
   return EFI_SUCCESS;\r
-\r
 }\r
 \r
 /**\r
@@ -430,7 +421,7 @@ PopConditionalStack (
 **/\r
 INTN\r
 GetConditionalExpressionCount (\r
-  IN EXPRESS_LEVEL       Level\r
+  IN EXPRESS_LEVEL  Level\r
   )\r
 {\r
   switch (Level) {\r
@@ -457,7 +448,7 @@ GetConditionalExpressionCount (
 **/\r
 FORM_EXPRESSION **\r
 GetConditionalExpressionList (\r
-  IN EXPRESS_LEVEL       Level\r
+  IN EXPRESS_LEVEL  Level\r
   )\r
 {\r
   switch (Level) {\r
@@ -473,7 +464,6 @@ GetConditionalExpressionList (
   }\r
 }\r
 \r
-\r
 /**\r
   Push the expression options onto the Stack.\r
 \r
@@ -487,32 +477,32 @@ GetConditionalExpressionList (
 **/\r
 EFI_STATUS\r
 PushConditionalExpression (\r
-  IN FORM_EXPRESSION   *Pointer,\r
-  IN EXPRESS_LEVEL     Level\r
+  IN FORM_EXPRESSION  *Pointer,\r
+  IN EXPRESS_LEVEL    Level\r
   )\r
 {\r
   switch (Level) {\r
     case ExpressForm:\r
       return PushConditionalStack (\r
-        &mFormExpressionStack,\r
-        &mFormExpressionPointer,\r
-        &mFormExpressionEnd,\r
-        &Pointer\r
-        );\r
+               &mFormExpressionStack,\r
+               &mFormExpressionPointer,\r
+               &mFormExpressionEnd,\r
+               &Pointer\r
+               );\r
     case ExpressStatement:\r
       return PushConditionalStack (\r
-        &mStatementExpressionStack,\r
-        &mStatementExpressionPointer,\r
-        &mStatementExpressionEnd,\r
-        &Pointer\r
-        );\r
+               &mStatementExpressionStack,\r
+               &mStatementExpressionPointer,\r
+               &mStatementExpressionEnd,\r
+               &Pointer\r
+               );\r
     case ExpressOption:\r
       return PushConditionalStack (\r
-        &mOptionExpressionStack,\r
-        &mOptionExpressionPointer,\r
-        &mOptionExpressionEnd,\r
-        &Pointer\r
-        );\r
+               &mOptionExpressionStack,\r
+               &mOptionExpressionPointer,\r
+               &mOptionExpressionEnd,\r
+               &Pointer\r
+               );\r
     default:\r
       ASSERT (FALSE);\r
       return EFI_INVALID_PARAMETER;\r
@@ -531,32 +521,32 @@ PushConditionalExpression (
 **/\r
 EFI_STATUS\r
 PopConditionalExpression (\r
-  IN  EXPRESS_LEVEL      Level\r
+  IN  EXPRESS_LEVEL  Level\r
   )\r
 {\r
-  FORM_EXPRESSION   *Pointer;\r
+  FORM_EXPRESSION  *Pointer;\r
 \r
   switch (Level) {\r
     case ExpressForm:\r
       return PopConditionalStack (\r
-        mFormExpressionStack,\r
-        &mFormExpressionPointer,\r
-        &Pointer\r
-      );\r
+               mFormExpressionStack,\r
+               &mFormExpressionPointer,\r
+               &Pointer\r
+               );\r
 \r
     case ExpressStatement:\r
       return PopConditionalStack (\r
-        mStatementExpressionStack,\r
-        &mStatementExpressionPointer,\r
-        &Pointer\r
-      );\r
+               mStatementExpressionStack,\r
+               &mStatementExpressionPointer,\r
+               &Pointer\r
+               );\r
 \r
     case ExpressOption:\r
       return PopConditionalStack (\r
-        mOptionExpressionStack,\r
-        &mOptionExpressionPointer,\r
-        &Pointer\r
-      );\r
+               mOptionExpressionStack,\r
+               &mOptionExpressionPointer,\r
+               &Pointer\r
+               );\r
 \r
     default:\r
       ASSERT (FALSE);\r
@@ -564,7 +554,6 @@ PopConditionalExpression (
   }\r
 }\r
 \r
-\r
 /**\r
   Push the list of map expression onto the Stack\r
 \r
@@ -581,18 +570,17 @@ PushMapExpressionList (
 {\r
   EFI_HII_VALUE  Data;\r
 \r
-  Data.Type = EFI_IFR_TYPE_NUM_SIZE_64;\r
-  Data.Value.u64 = (UINT64) (UINTN) Pointer;\r
+  Data.Type      = EFI_IFR_TYPE_NUM_SIZE_64;\r
+  Data.Value.u64 = (UINT64)(UINTN)Pointer;\r
 \r
   return PushStack (\r
-    &mMapExpressionListStack,\r
-    &mMapExpressionListPointer,\r
-    &mMapExpressionListEnd,\r
-    &Data\r
-    );\r
+           &mMapExpressionListStack,\r
+           &mMapExpressionListPointer,\r
+           &mMapExpressionListEnd,\r
+           &Data\r
+           );\r
 }\r
 \r
-\r
 /**\r
   Pop the list of map expression from the Stack\r
 \r
@@ -604,19 +592,19 @@ PushMapExpressionList (
 **/\r
 EFI_STATUS\r
 PopMapExpressionList (\r
-  OUT VOID    **Pointer\r
+  OUT VOID  **Pointer\r
   )\r
 {\r
   EFI_STATUS     Status;\r
   EFI_HII_VALUE  Data;\r
 \r
   Status = PopStack (\r
-    mMapExpressionListStack,\r
-    &mMapExpressionListPointer,\r
-    &Data\r
-    );\r
+             mMapExpressionListStack,\r
+             &mMapExpressionListPointer,\r
+             &Data\r
+             );\r
 \r
-  *Pointer = (VOID *) (UINTN) Data.Value.u64;\r
+  *Pointer = (VOID *)(UINTN)Data.Value.u64;\r
 \r
   return Status;\r
 }\r
@@ -633,7 +621,6 @@ ResetScopeStack (
   mOpCodeScopeStackPointer = mOpCodeScopeStack;\r
 }\r
 \r
-\r
 /**\r
   Push an Operand onto the Stack\r
 \r
@@ -646,12 +633,12 @@ ResetScopeStack (
 **/\r
 EFI_STATUS\r
 PushScope (\r
-  IN UINT8   Operand\r
+  IN UINT8  Operand\r
   )\r
 {\r
   EFI_HII_VALUE  Data;\r
 \r
-  Data.Type = EFI_IFR_TYPE_NUM_SIZE_8;\r
+  Data.Type     = EFI_IFR_TYPE_NUM_SIZE_8;\r
   Data.Value.u8 = Operand;\r
 \r
   return PushStack (\r
@@ -662,7 +649,6 @@ PushScope (
            );\r
 }\r
 \r
-\r
 /**\r
   Pop an Operand from the Stack\r
 \r
@@ -675,7 +661,7 @@ PushScope (
 **/\r
 EFI_STATUS\r
 PopScope (\r
-  OUT UINT8     *Operand\r
+  OUT UINT8  *Operand\r
   )\r
 {\r
   EFI_STATUS     Status;\r
@@ -692,7 +678,6 @@ PopScope (
   return Status;\r
 }\r
 \r
-\r
 /**\r
   Push an Expression value onto the Stack\r
 \r
@@ -716,7 +701,6 @@ PushExpression (
            );\r
 }\r
 \r
-\r
 /**\r
   Pop an Expression value from the stack.\r
 \r
@@ -748,8 +732,9 @@ SaveExpressionEvaluationStackOffset (
   VOID\r
   )\r
 {\r
-  UINTN TempStackOffset;\r
-  TempStackOffset = mExpressionEvaluationStackOffset;\r
+  UINTN  TempStackOffset;\r
+\r
+  TempStackOffset                  = mExpressionEvaluationStackOffset;\r
   mExpressionEvaluationStackOffset = mExpressionEvaluationStackPointer - mExpressionEvaluationStack;\r
   return TempStackOffset;\r
 }\r
@@ -762,7 +747,7 @@ SaveExpressionEvaluationStackOffset (
 **/\r
 VOID\r
 RestoreExpressionEvaluationStackOffset (\r
-  UINTN StackOffset\r
+  UINTN  StackOffset\r
   )\r
 {\r
   mExpressionEvaluationStackOffset = StackOffset;\r
@@ -801,7 +786,6 @@ IdToForm (
   return NULL;\r
 }\r
 \r
-\r
 /**\r
   Search a Question in Form scope using its QuestionId.\r
 \r
@@ -821,7 +805,7 @@ IdToQuestion2 (
   LIST_ENTRY              *Link;\r
   FORM_BROWSER_STATEMENT  *Question;\r
 \r
-  if (QuestionId == 0 || Form == NULL) {\r
+  if ((QuestionId == 0) || (Form == NULL)) {\r
     //\r
     // The value of zero is reserved\r
     //\r
@@ -842,7 +826,6 @@ IdToQuestion2 (
   return NULL;\r
 }\r
 \r
-\r
 /**\r
   Search a Question in Formset scope using its QuestionId.\r
 \r
@@ -898,7 +881,6 @@ IdToQuestion (
   return NULL;\r
 }\r
 \r
-\r
 /**\r
   Get Expression given its RuleId.\r
 \r
@@ -922,7 +904,7 @@ RuleIdToExpression (
   while (!IsNull (&Form->ExpressionListHead, Link)) {\r
     Expression = FORM_EXPRESSION_FROM_LINK (Link);\r
 \r
-    if (Expression->Type == EFI_HII_EXPRESSION_RULE && Expression->RuleId == RuleId) {\r
+    if ((Expression->Type == EFI_HII_EXPRESSION_RULE) && (Expression->RuleId == RuleId)) {\r
       return Expression;\r
     }\r
 \r
@@ -932,7 +914,6 @@ RuleIdToExpression (
   return NULL;\r
 }\r
 \r
-\r
 /**\r
   Locate the Unicode Collation Protocol interface for later use.\r
 \r
@@ -959,7 +940,7 @@ InitializeUnicodeCollationProtocol (
   Status = gBS->LocateProtocol (\r
                   &gEfiUnicodeCollation2ProtocolGuid,\r
                   NULL,\r
-                  (VOID **) &mUnicodeCollation\r
+                  (VOID **)&mUnicodeCollation\r
                   );\r
   return Status;\r
 }\r
@@ -972,13 +953,14 @@ InitializeUnicodeCollationProtocol (
 **/\r
 VOID\r
 IfrStrToUpper (\r
-  IN CHAR16                   *String\r
+  IN CHAR16  *String\r
   )\r
 {\r
   while (*String != 0) {\r
     if ((*String >= 'a') && (*String <= 'z')) {\r
-      *String = (UINT16) ((*String) & ((UINT16) ~0x20));\r
+      *String = (UINT16)((*String) & ((UINT16) ~0x20));\r
     }\r
+\r
     String++;\r
   }\r
 }\r
@@ -997,18 +979,18 @@ IfrStrToUpper (
 **/\r
 BOOLEAN\r
 IsTypeInBuffer (\r
-  IN  EFI_HII_VALUE   *Value\r
+  IN  EFI_HII_VALUE  *Value\r
   )\r
 {\r
   switch (Value->Type) {\r
-  case EFI_IFR_TYPE_BUFFER:\r
-  case EFI_IFR_TYPE_DATE:\r
-  case EFI_IFR_TYPE_TIME:\r
-  case EFI_IFR_TYPE_REF:\r
-    return TRUE;\r
+    case EFI_IFR_TYPE_BUFFER:\r
+    case EFI_IFR_TYPE_DATE:\r
+    case EFI_IFR_TYPE_TIME:\r
+    case EFI_IFR_TYPE_REF:\r
+      return TRUE;\r
 \r
-  default:\r
-    return FALSE;\r
+    default:\r
+      return FALSE;\r
   }\r
 }\r
 \r
@@ -1023,19 +1005,19 @@ IsTypeInBuffer (
 **/\r
 BOOLEAN\r
 IsTypeInUINT64 (\r
-  IN  EFI_HII_VALUE   *Value\r
+  IN  EFI_HII_VALUE  *Value\r
   )\r
 {\r
   switch (Value->Type) {\r
-  case EFI_IFR_TYPE_NUM_SIZE_8:\r
-  case EFI_IFR_TYPE_NUM_SIZE_16:\r
-  case EFI_IFR_TYPE_NUM_SIZE_32:\r
-  case EFI_IFR_TYPE_NUM_SIZE_64:\r
-  case EFI_IFR_TYPE_BOOLEAN:\r
-    return TRUE;\r
+    case EFI_IFR_TYPE_NUM_SIZE_8:\r
+    case EFI_IFR_TYPE_NUM_SIZE_16:\r
+    case EFI_IFR_TYPE_NUM_SIZE_32:\r
+    case EFI_IFR_TYPE_NUM_SIZE_64:\r
+    case EFI_IFR_TYPE_BOOLEAN:\r
+      return TRUE;\r
 \r
-  default:\r
-    return FALSE;\r
+    default:\r
+      return FALSE;\r
   }\r
 }\r
 \r
@@ -1052,24 +1034,24 @@ IsTypeInUINT64 (
 **/\r
 UINT16\r
 GetLengthForValue (\r
-  IN  EFI_HII_VALUE   *Value\r
+  IN  EFI_HII_VALUE  *Value\r
   )\r
 {\r
   switch (Value->Type) {\r
-  case EFI_IFR_TYPE_BUFFER:\r
-    return Value->BufferLen;\r
+    case EFI_IFR_TYPE_BUFFER:\r
+      return Value->BufferLen;\r
 \r
-  case EFI_IFR_TYPE_DATE:\r
-    return (UINT16) sizeof (EFI_HII_DATE);\r
+    case EFI_IFR_TYPE_DATE:\r
+      return (UINT16)sizeof (EFI_HII_DATE);\r
 \r
-  case EFI_IFR_TYPE_TIME:\r
-    return (UINT16) sizeof (EFI_HII_TIME);\r
+    case EFI_IFR_TYPE_TIME:\r
+      return (UINT16)sizeof (EFI_HII_TIME);\r
 \r
-  case EFI_IFR_TYPE_REF:\r
-    return (UINT16) sizeof (EFI_HII_REF);\r
+    case EFI_IFR_TYPE_REF:\r
+      return (UINT16)sizeof (EFI_HII_REF);\r
 \r
-  default:\r
-    return 0;\r
+    default:\r
+      return 0;\r
   }\r
 }\r
 \r
@@ -1086,24 +1068,24 @@ GetLengthForValue (
 **/\r
 UINT8 *\r
 GetBufferForValue (\r
-  IN  EFI_HII_VALUE   *Value\r
+  IN  EFI_HII_VALUE  *Value\r
   )\r
 {\r
   switch (Value->Type) {\r
-  case EFI_IFR_TYPE_BUFFER:\r
-    return Value->Buffer;\r
+    case EFI_IFR_TYPE_BUFFER:\r
+      return Value->Buffer;\r
 \r
-  case EFI_IFR_TYPE_DATE:\r
-    return (UINT8 *) (&Value->Value.date);\r
+    case EFI_IFR_TYPE_DATE:\r
+      return (UINT8 *)(&Value->Value.date);\r
 \r
-  case EFI_IFR_TYPE_TIME:\r
-    return (UINT8 *) (&Value->Value.time);\r
+    case EFI_IFR_TYPE_TIME:\r
+      return (UINT8 *)(&Value->Value.time);\r
 \r
-  case EFI_IFR_TYPE_REF:\r
-    return (UINT8 *) (&Value->Value.ref);\r
+    case EFI_IFR_TYPE_REF:\r
+      return (UINT8 *)(&Value->Value.ref);\r
 \r
-  default:\r
-    return NULL;\r
+    default:\r
+      return NULL;\r
   }\r
 }\r
 \r
@@ -1141,86 +1123,88 @@ IfrToString (
   }\r
 \r
   switch (Value.Type) {\r
-  case EFI_IFR_TYPE_NUM_SIZE_8:\r
-  case EFI_IFR_TYPE_NUM_SIZE_16:\r
-  case EFI_IFR_TYPE_NUM_SIZE_32:\r
-  case EFI_IFR_TYPE_NUM_SIZE_64:\r
-    BufferSize = MAXIMUM_VALUE_CHARACTERS * sizeof (CHAR16);\r
-    switch (Format) {\r
-    case EFI_IFR_STRING_UNSIGNED_DEC:\r
-    case EFI_IFR_STRING_SIGNED_DEC:\r
-      PrintFormat = L"%ld";\r
-      break;\r
+    case EFI_IFR_TYPE_NUM_SIZE_8:\r
+    case EFI_IFR_TYPE_NUM_SIZE_16:\r
+    case EFI_IFR_TYPE_NUM_SIZE_32:\r
+    case EFI_IFR_TYPE_NUM_SIZE_64:\r
+      BufferSize = MAXIMUM_VALUE_CHARACTERS * sizeof (CHAR16);\r
+      switch (Format) {\r
+        case EFI_IFR_STRING_UNSIGNED_DEC:\r
+        case EFI_IFR_STRING_SIGNED_DEC:\r
+          PrintFormat = L"%ld";\r
+          break;\r
 \r
-    case EFI_IFR_STRING_LOWERCASE_HEX:\r
-      PrintFormat = L"%lx";\r
-      break;\r
+        case EFI_IFR_STRING_LOWERCASE_HEX:\r
+          PrintFormat = L"%lx";\r
+          break;\r
+\r
+        case EFI_IFR_STRING_UPPERCASE_HEX:\r
+          PrintFormat = L"%lX";\r
+          break;\r
+\r
+        default:\r
+          Result->Type = EFI_IFR_TYPE_UNDEFINED;\r
+          return EFI_SUCCESS;\r
+      }\r
 \r
-    case EFI_IFR_STRING_UPPERCASE_HEX:\r
-      PrintFormat = L"%lX";\r
+      UnicodeSPrint (Buffer, BufferSize, PrintFormat, Value.Value.u64);\r
+      String = Buffer;\r
       break;\r
 \r
-    default:\r
-      Result->Type = EFI_IFR_TYPE_UNDEFINED;\r
+    case EFI_IFR_TYPE_STRING:\r
+      CopyMem (Result, &Value, sizeof (EFI_HII_VALUE));\r
       return EFI_SUCCESS;\r
-    }\r
-    UnicodeSPrint (Buffer, BufferSize, PrintFormat, Value.Value.u64);\r
-    String = Buffer;\r
-    break;\r
 \r
-  case EFI_IFR_TYPE_STRING:\r
-    CopyMem (Result, &Value, sizeof (EFI_HII_VALUE));\r
-    return EFI_SUCCESS;\r
+    case EFI_IFR_TYPE_BOOLEAN:\r
+      String = (Value.Value.b) ? L"True" : L"False";\r
+      break;\r
 \r
-  case EFI_IFR_TYPE_BOOLEAN:\r
-    String = (Value.Value.b) ? L"True" : L"False";\r
-    break;\r
+    case EFI_IFR_TYPE_BUFFER:\r
+    case EFI_IFR_TYPE_DATE:\r
+    case EFI_IFR_TYPE_TIME:\r
+    case EFI_IFR_TYPE_REF:\r
+      //\r
+      // + 3 is base on the unicode format, the length may be odd number,\r
+      // so need 1 byte to align, also need 2 bytes for L'\0'.\r
+      //\r
+      if (Value.Type == EFI_IFR_TYPE_BUFFER) {\r
+        SrcLen = Value.BufferLen;\r
+        SrcBuf = Value.Buffer;\r
+      } else {\r
+        SrcBuf = GetBufferForValue (&Value);\r
+        SrcLen = GetLengthForValue (&Value);\r
+      }\r
 \r
-  case EFI_IFR_TYPE_BUFFER:\r
-  case EFI_IFR_TYPE_DATE:\r
-  case EFI_IFR_TYPE_TIME:\r
-  case EFI_IFR_TYPE_REF:\r
-    //\r
-    // + 3 is base on the unicode format, the length may be odd number,\r
-    // so need 1 byte to align, also need 2 bytes for L'\0'.\r
-    //\r
-    if (Value.Type == EFI_IFR_TYPE_BUFFER) {\r
-      SrcLen = Value.BufferLen;\r
-      SrcBuf = Value.Buffer;\r
-    } else {\r
-      SrcBuf = GetBufferForValue(&Value);\r
-      SrcLen = GetLengthForValue(&Value);\r
-    }\r
+      TmpBuf = AllocateZeroPool (SrcLen + 3);\r
+      ASSERT (TmpBuf != NULL);\r
+      if (Format == EFI_IFR_STRING_ASCII) {\r
+        CopyMem (TmpBuf, SrcBuf, SrcLen);\r
+        PrintFormat = L"%a";\r
+      } else {\r
+        // Format == EFI_IFR_STRING_UNICODE\r
+        CopyMem (TmpBuf, SrcBuf, SrcLen * sizeof (CHAR16));\r
+        PrintFormat = L"%s";\r
+      }\r
 \r
-    TmpBuf = AllocateZeroPool (SrcLen + 3);\r
-    ASSERT (TmpBuf != NULL);\r
-    if (Format == EFI_IFR_STRING_ASCII) {\r
-      CopyMem (TmpBuf, SrcBuf, SrcLen);\r
-      PrintFormat = L"%a";\r
-    } else {\r
-      // Format == EFI_IFR_STRING_UNICODE\r
-      CopyMem (TmpBuf, SrcBuf, SrcLen * sizeof (CHAR16));\r
-      PrintFormat = L"%s";\r
-    }\r
-    UnicodeSPrint (Buffer, sizeof (Buffer), PrintFormat, TmpBuf);\r
-    String = Buffer;\r
-    FreePool (TmpBuf);\r
-    if (Value.Type == EFI_IFR_TYPE_BUFFER) {\r
-      FreePool (Value.Buffer);\r
-    }\r
-    break;\r
+      UnicodeSPrint (Buffer, sizeof (Buffer), PrintFormat, TmpBuf);\r
+      String = Buffer;\r
+      FreePool (TmpBuf);\r
+      if (Value.Type == EFI_IFR_TYPE_BUFFER) {\r
+        FreePool (Value.Buffer);\r
+      }\r
 \r
-  default:\r
-    Result->Type = EFI_IFR_TYPE_UNDEFINED;\r
-    return EFI_SUCCESS;\r
+      break;\r
+\r
+    default:\r
+      Result->Type = EFI_IFR_TYPE_UNDEFINED;\r
+      return EFI_SUCCESS;\r
   }\r
 \r
-  Result->Type = EFI_IFR_TYPE_STRING;\r
+  Result->Type         = EFI_IFR_TYPE_STRING;\r
   Result->Value.string = NewString (String, FormSet->HiiHandle);\r
   return EFI_SUCCESS;\r
 }\r
 \r
-\r
 /**\r
   Evaluate opcode EFI_IFR_TO_UINT.\r
 \r
@@ -1247,7 +1231,7 @@ IfrToUint (
     return Status;\r
   }\r
 \r
-  if (Value.Type >= EFI_IFR_TYPE_OTHER && !IsTypeInBuffer(&Value)) {\r
+  if ((Value.Type >= EFI_IFR_TYPE_OTHER) && !IsTypeInBuffer (&Value)) {\r
     Result->Type = EFI_IFR_TYPE_UNDEFINED;\r
     return EFI_SUCCESS;\r
   }\r
@@ -1272,18 +1256,20 @@ IfrToUint (
       //\r
       Result->Value.u64 = StrDecimalToUint64 (String);\r
     }\r
+\r
     FreePool (String);\r
-  } else if (IsTypeInBuffer(&Value)) {\r
+  } else if (IsTypeInBuffer (&Value)) {\r
     if (GetLengthForValue (&Value) > 8) {\r
       if (Value.Type == EFI_IFR_TYPE_BUFFER) {\r
         FreePool (Value.Buffer);\r
       }\r
+\r
       Result->Type = EFI_IFR_TYPE_UNDEFINED;\r
       return EFI_SUCCESS;\r
     }\r
 \r
     ASSERT (GetBufferForValue (&Value) != NULL);\r
-    Result->Value.u64 = *(UINT64*) GetBufferForValue (&Value);\r
+    Result->Value.u64 = *(UINT64 *)GetBufferForValue (&Value);\r
 \r
     if (Value.Type == EFI_IFR_TYPE_BUFFER) {\r
       FreePool (Value.Buffer);\r
@@ -1296,7 +1282,6 @@ IfrToUint (
   return Status;\r
 }\r
 \r
-\r
 /**\r
   Evaluate opcode EFI_IFR_CATENATE.\r
 \r
@@ -1331,7 +1316,7 @@ IfrCatenate (
   String[0] = NULL;\r
   String[1] = NULL;\r
   StringPtr = NULL;\r
-  Status = EFI_SUCCESS;\r
+  Status    = EFI_SUCCESS;\r
   ZeroMem (Value, sizeof (Value));\r
 \r
   Status = PopExpression (&Value[0]);\r
@@ -1345,9 +1330,9 @@ IfrCatenate (
   }\r
 \r
   for (Index = 0; Index < 2; Index++) {\r
-    if (Value[Index].Type != EFI_IFR_TYPE_STRING && !IsTypeInBuffer(&Value[Index])) {\r
+    if ((Value[Index].Type != EFI_IFR_TYPE_STRING) && !IsTypeInBuffer (&Value[Index])) {\r
       Result->Type = EFI_IFR_TYPE_UNDEFINED;\r
-      Status = EFI_SUCCESS;\r
+      Status       = EFI_SUCCESS;\r
       goto Done;\r
     }\r
 \r
@@ -1361,44 +1346,49 @@ IfrCatenate (
   }\r
 \r
   if (Value[0].Type == EFI_IFR_TYPE_STRING) {\r
-    Size = StrSize (String[0]);\r
-    MaxLen = (StrSize (String[1]) + Size) / sizeof (CHAR16);\r
-    StringPtr= AllocatePool (MaxLen * sizeof (CHAR16));\r
+    Size      = StrSize (String[0]);\r
+    MaxLen    = (StrSize (String[1]) + Size) / sizeof (CHAR16);\r
+    StringPtr = AllocatePool (MaxLen * sizeof (CHAR16));\r
     ASSERT (StringPtr != NULL);\r
     StrCpyS (StringPtr, MaxLen, String[1]);\r
     StrCatS (StringPtr, MaxLen, String[0]);\r
 \r
-    Result->Type = EFI_IFR_TYPE_STRING;\r
+    Result->Type         = EFI_IFR_TYPE_STRING;\r
     Result->Value.string = NewString (StringPtr, FormSet->HiiHandle);\r
   } else {\r
-    Result->Type = EFI_IFR_TYPE_BUFFER;\r
-    Length0 = GetLengthForValue(&Value[0]);\r
-    Length1 = GetLengthForValue(&Value[1]);\r
-    Result->BufferLen = (UINT16) (Length0 + Length1);\r
+    Result->Type      = EFI_IFR_TYPE_BUFFER;\r
+    Length0           = GetLengthForValue (&Value[0]);\r
+    Length1           = GetLengthForValue (&Value[1]);\r
+    Result->BufferLen = (UINT16)(Length0 + Length1);\r
 \r
     Result->Buffer = AllocateZeroPool (Result->BufferLen);\r
     ASSERT (Result->Buffer != NULL);\r
 \r
-    TmpBuf = GetBufferForValue(&Value[0]);\r
+    TmpBuf = GetBufferForValue (&Value[0]);\r
     ASSERT (TmpBuf != NULL);\r
     CopyMem (Result->Buffer, TmpBuf, Length0);\r
-    TmpBuf = GetBufferForValue(&Value[1]);\r
+    TmpBuf = GetBufferForValue (&Value[1]);\r
     ASSERT (TmpBuf != NULL);\r
     CopyMem (&Result->Buffer[Length0], TmpBuf, Length1);\r
   }\r
+\r
 Done:\r
   if (Value[0].Buffer != NULL) {\r
     FreePool (Value[0].Buffer);\r
   }\r
+\r
   if (Value[1].Buffer != NULL) {\r
     FreePool (Value[1].Buffer);\r
   }\r
+\r
   if (String[0] != NULL) {\r
     FreePool (String[0]);\r
   }\r
+\r
   if (String[1] != NULL) {\r
     FreePool (String[1]);\r
   }\r
+\r
   if (StringPtr != NULL) {\r
     FreePool (StringPtr);\r
   }\r
@@ -1406,7 +1396,6 @@ Done:
   return Status;\r
 }\r
 \r
-\r
 /**\r
   Evaluate opcode EFI_IFR_MATCH.\r
 \r
@@ -1434,7 +1423,7 @@ IfrMatch (
   //\r
   String[0] = NULL;\r
   String[1] = NULL;\r
-  Status = EFI_SUCCESS;\r
+  Status    = EFI_SUCCESS;\r
   ZeroMem (Value, sizeof (Value));\r
 \r
   Status = PopExpression (&Value[0]);\r
@@ -1450,24 +1439,25 @@ IfrMatch (
   for (Index = 0; Index < 2; Index++) {\r
     if (Value[Index].Type != EFI_IFR_TYPE_STRING) {\r
       Result->Type = EFI_IFR_TYPE_UNDEFINED;\r
-      Status = EFI_SUCCESS;\r
+      Status       = EFI_SUCCESS;\r
       goto Done;\r
     }\r
 \r
     String[Index] = GetToken (Value[Index].Value.string, FormSet->HiiHandle);\r
-    if (String [Index] == NULL) {\r
+    if (String[Index] == NULL) {\r
       Status = EFI_NOT_FOUND;\r
       goto Done;\r
     }\r
   }\r
 \r
-  Result->Type = EFI_IFR_TYPE_BOOLEAN;\r
+  Result->Type    = EFI_IFR_TYPE_BOOLEAN;\r
   Result->Value.b = mUnicodeCollation->MetaiMatch (mUnicodeCollation, String[0], String[1]);\r
 \r
 Done:\r
   if (String[0] != NULL) {\r
     FreePool (String[0]);\r
   }\r
+\r
   if (String[1] != NULL) {\r
     FreePool (String[1]);\r
   }\r
@@ -1509,11 +1499,11 @@ IfrMatch2 (
   // String[0] - The string to search\r
   // String[1] - pattern\r
   //\r
-  String[0] = NULL;\r
-  String[1] = NULL;\r
-  HandleBuffer = NULL;\r
+  String[0]           = NULL;\r
+  String[1]           = NULL;\r
+  HandleBuffer        = NULL;\r
   RegExSyntaxTypeList = NULL;\r
-  Status = EFI_SUCCESS;\r
+  Status              = EFI_SUCCESS;\r
   ZeroMem (Value, sizeof (Value));\r
 \r
   Status = PopExpression (&Value[0]);\r
@@ -1529,59 +1519,61 @@ IfrMatch2 (
   for (Index = 0; Index < 2; Index++) {\r
     if (Value[Index].Type != EFI_IFR_TYPE_STRING) {\r
       Result->Type = EFI_IFR_TYPE_UNDEFINED;\r
-      Status = EFI_SUCCESS;\r
+      Status       = EFI_SUCCESS;\r
       goto Done;\r
     }\r
 \r
     String[Index] = GetToken (Value[Index].Value.string, FormSet->HiiHandle);\r
-    if (String [Index] == NULL) {\r
+    if (String[Index] == NULL) {\r
       Status = EFI_NOT_FOUND;\r
       goto Done;\r
     }\r
   }\r
 \r
-  BufferSize    = 0;\r
-  HandleBuffer  = NULL;\r
-  Status = gBS->LocateHandle(\r
-                      ByProtocol,\r
-                      &gEfiRegularExpressionProtocolGuid,\r
-                      NULL,\r
-                      &BufferSize,\r
-                      HandleBuffer);\r
+  BufferSize   = 0;\r
+  HandleBuffer = NULL;\r
+  Status       = gBS->LocateHandle (\r
+                        ByProtocol,\r
+                        &gEfiRegularExpressionProtocolGuid,\r
+                        NULL,\r
+                        &BufferSize,\r
+                        HandleBuffer\r
+                        );\r
   if (Status == EFI_BUFFER_TOO_SMALL) {\r
-    HandleBuffer = AllocateZeroPool(BufferSize);\r
+    HandleBuffer = AllocateZeroPool (BufferSize);\r
     if (HandleBuffer == NULL) {\r
       Status = EFI_OUT_OF_RESOURCES;\r
       goto Done;\r
     }\r
-    Status = gBS->LocateHandle(\r
-                        ByProtocol,\r
-                        &gEfiRegularExpressionProtocolGuid,\r
-                        NULL,\r
-                        &BufferSize,\r
-                        HandleBuffer);\r
 \r
+    Status = gBS->LocateHandle (\r
+                    ByProtocol,\r
+                    &gEfiRegularExpressionProtocolGuid,\r
+                    NULL,\r
+                    &BufferSize,\r
+                    HandleBuffer\r
+                    );\r
   }\r
 \r
   if (EFI_ERROR (Status)) {\r
     Result->Type = EFI_IFR_TYPE_UNDEFINED;\r
-    Status = EFI_SUCCESS;\r
+    Status       = EFI_SUCCESS;\r
     goto Done;\r
   }\r
 \r
   ASSERT (HandleBuffer != NULL);\r
-  for ( Index = 0; Index < BufferSize / sizeof(EFI_HANDLE); Index ++) {\r
+  for ( Index = 0; Index < BufferSize / sizeof (EFI_HANDLE); Index++) {\r
     Status = gBS->HandleProtocol (\r
-                  HandleBuffer[Index],\r
-                  &gEfiRegularExpressionProtocolGuid,\r
-                  (VOID**)&RegularExpressionProtocol\r
-                 );\r
+                    HandleBuffer[Index],\r
+                    &gEfiRegularExpressionProtocolGuid,\r
+                    (VOID **)&RegularExpressionProtocol\r
+                    );\r
     if (EFI_ERROR (Status)) {\r
       goto Done;\r
     }\r
 \r
     RegExSyntaxTypeListSize = 0;\r
-    RegExSyntaxTypeList = NULL;\r
+    RegExSyntaxTypeList     = NULL;\r
 \r
     Status = RegularExpressionProtocol->GetInfo (\r
                                           RegularExpressionProtocol,\r
@@ -1589,11 +1581,12 @@ IfrMatch2 (
                                           RegExSyntaxTypeList\r
                                           );\r
     if (Status == EFI_BUFFER_TOO_SMALL) {\r
-      RegExSyntaxTypeList = AllocateZeroPool(RegExSyntaxTypeListSize);\r
+      RegExSyntaxTypeList = AllocateZeroPool (RegExSyntaxTypeListSize);\r
       if (RegExSyntaxTypeList == NULL) {\r
         Status = EFI_OUT_OF_RESOURCES;\r
         goto Done;\r
       }\r
+\r
       Status = RegularExpressionProtocol->GetInfo (\r
                                             RegularExpressionProtocol,\r
                                             &RegExSyntaxTypeListSize,\r
@@ -1603,21 +1596,21 @@ IfrMatch2 (
       goto Done;\r
     }\r
 \r
-    for (GuidIndex = 0; GuidIndex < RegExSyntaxTypeListSize / sizeof(EFI_GUID); GuidIndex++) {\r
+    for (GuidIndex = 0; GuidIndex < RegExSyntaxTypeListSize / sizeof (EFI_GUID); GuidIndex++) {\r
       if (CompareGuid (&RegExSyntaxTypeList[GuidIndex], SyntaxType)) {\r
         //\r
         // Find the match type, return the value.\r
         //\r
         Result->Type = EFI_IFR_TYPE_BOOLEAN;\r
-        Status = RegularExpressionProtocol->MatchString (\r
-                                              RegularExpressionProtocol,\r
-                                              String[0],\r
-                                              String[1],\r
-                                              SyntaxType,\r
-                                              &Result->Value.b,\r
-                                              NULL,\r
-                                              &CapturesCount\r
-                                              );\r
+        Status       = RegularExpressionProtocol->MatchString (\r
+                                                    RegularExpressionProtocol,\r
+                                                    String[0],\r
+                                                    String[1],\r
+                                                    SyntaxType,\r
+                                                    &Result->Value.b,\r
+                                                    NULL,\r
+                                                    &CapturesCount\r
+                                                    );\r
         goto Done;\r
       }\r
     }\r
@@ -1632,21 +1625,25 @@ IfrMatch2 (
   // in any of the EFI_REGULAR_EXPRESSION_PROTOCOL instances.\r
   //\r
   Result->Type = EFI_IFR_TYPE_UNDEFINED;\r
-  Status = EFI_SUCCESS;\r
+  Status       = EFI_SUCCESS;\r
 \r
 Done:\r
   if (String[0] != NULL) {\r
     FreePool (String[0]);\r
   }\r
+\r
   if (String[1] != NULL) {\r
     FreePool (String[1]);\r
   }\r
+\r
   if (RegExSyntaxTypeList != NULL) {\r
     FreePool (RegExSyntaxTypeList);\r
   }\r
+\r
   if (HandleBuffer != NULL) {\r
     FreePool (HandleBuffer);\r
   }\r
+\r
   return Status;\r
 }\r
 \r
@@ -1700,7 +1697,8 @@ IfrFind (
     Result->Type = EFI_IFR_TYPE_UNDEFINED;\r
     return EFI_SUCCESS;\r
   }\r
-  Base = (UINTN) Value[0].Value.u64;\r
+\r
+  Base = (UINTN)Value[0].Value.u64;\r
 \r
   //\r
   // String[0] - sub-string\r
@@ -1711,7 +1709,7 @@ IfrFind (
   for (Index = 0; Index < 2; Index++) {\r
     if (Value[Index + 1].Type != EFI_IFR_TYPE_STRING) {\r
       Result->Type = EFI_IFR_TYPE_UNDEFINED;\r
-      Status = EFI_SUCCESS;\r
+      Status       = EFI_SUCCESS;\r
       goto Done;\r
     }\r
 \r
@@ -1733,7 +1731,7 @@ IfrFind (
   if (Base >= StrLen (String[1])) {\r
     Result->Value.u64 = 0xFFFFFFFFFFFFFFFFULL;\r
   } else {\r
-    StringPtr = StrStr (String[1] + Base, String[0]);\r
+    StringPtr         = StrStr (String[1] + Base, String[0]);\r
     Result->Value.u64 = (StringPtr == NULL) ? 0xFFFFFFFFFFFFFFFFULL : (StringPtr - String[1]);\r
   }\r
 \r
@@ -1741,6 +1739,7 @@ Done:
   if (String[0] != NULL) {\r
     FreePool (String[0]);\r
   }\r
+\r
   if (String[1] != NULL) {\r
     FreePool (String[1]);\r
   }\r
@@ -1748,7 +1747,6 @@ Done:
   return Status;\r
 }\r
 \r
-\r
 /**\r
   Evaluate opcode EFI_IFR_MID.\r
 \r
@@ -1795,25 +1793,28 @@ IfrMid (
     Result->Type = EFI_IFR_TYPE_UNDEFINED;\r
     return EFI_SUCCESS;\r
   }\r
-  Length = (UINTN) Value[0].Value.u64;\r
+\r
+  Length = (UINTN)Value[0].Value.u64;\r
 \r
   if (Value[1].Type > EFI_IFR_TYPE_NUM_SIZE_64) {\r
     Result->Type = EFI_IFR_TYPE_UNDEFINED;\r
     return EFI_SUCCESS;\r
   }\r
-  Base = (UINTN) Value[1].Value.u64;\r
 \r
-  if (Value[2].Type != EFI_IFR_TYPE_STRING && !IsTypeInBuffer(&Value[2])) {\r
+  Base = (UINTN)Value[1].Value.u64;\r
+\r
+  if ((Value[2].Type != EFI_IFR_TYPE_STRING) && !IsTypeInBuffer (&Value[2])) {\r
     Result->Type = EFI_IFR_TYPE_UNDEFINED;\r
     return EFI_SUCCESS;\r
   }\r
+\r
   if (Value[2].Type == EFI_IFR_TYPE_STRING) {\r
     String = GetToken (Value[2].Value.string, FormSet->HiiHandle);\r
     if (String == NULL) {\r
       return EFI_NOT_FOUND;\r
     }\r
 \r
-    if (Length == 0 || Base >= StrLen (String)) {\r
+    if ((Length == 0) || (Base >= StrLen (String))) {\r
       SubString = gEmptyString;\r
     } else {\r
       SubString = String + Base;\r
@@ -1822,21 +1823,21 @@ IfrMid (
       }\r
     }\r
 \r
-    Result->Type = EFI_IFR_TYPE_STRING;\r
+    Result->Type         = EFI_IFR_TYPE_STRING;\r
     Result->Value.string = NewString (SubString, FormSet->HiiHandle);\r
 \r
     FreePool (String);\r
   } else {\r
     BufferLen = GetLengthForValue (&Value[2]);\r
-    Buffer = GetBufferForValue (&Value[2]);\r
+    Buffer    = GetBufferForValue (&Value[2]);\r
 \r
     Result->Type = EFI_IFR_TYPE_BUFFER;\r
-    if (Length == 0 || Base >= BufferLen) {\r
+    if ((Length == 0) || (Base >= BufferLen)) {\r
       Result->BufferLen = 0;\r
-      Result->Buffer = NULL;\r
+      Result->Buffer    = NULL;\r
     } else {\r
       Result->BufferLen = (UINT16)((BufferLen - Base) < Length ? (BufferLen - Base) : Length);\r
-      Result->Buffer = AllocateZeroPool (Result->BufferLen);\r
+      Result->Buffer    = AllocateZeroPool (Result->BufferLen);\r
       ASSERT (Result->Buffer != NULL);\r
       CopyMem (Result->Buffer, &Buffer[Base], Result->BufferLen);\r
     }\r
@@ -1849,7 +1850,6 @@ IfrMid (
   return Status;\r
 }\r
 \r
-\r
 /**\r
   Evaluate opcode EFI_IFR_TOKEN.\r
 \r
@@ -1896,7 +1896,8 @@ IfrToken (
     Result->Type = EFI_IFR_TYPE_UNDEFINED;\r
     return EFI_SUCCESS;\r
   }\r
-  Count = (UINTN) Value[0].Value.u64;\r
+\r
+  Count = (UINTN)Value[0].Value.u64;\r
 \r
   //\r
   // String[0] - Delimiter\r
@@ -1907,7 +1908,7 @@ IfrToken (
   for (Index = 0; Index < 2; Index++) {\r
     if (Value[Index + 1].Type != EFI_IFR_TYPE_STRING) {\r
       Result->Type = EFI_IFR_TYPE_UNDEFINED;\r
-      Status = EFI_SUCCESS;\r
+      Status       = EFI_SUCCESS;\r
       goto Done;\r
     }\r
 \r
@@ -1930,6 +1931,7 @@ IfrToken (
     } else {\r
       break;\r
     }\r
+\r
     Count--;\r
   }\r
 \r
@@ -1948,13 +1950,14 @@ IfrToken (
     }\r
   }\r
 \r
-  Result->Type = EFI_IFR_TYPE_STRING;\r
+  Result->Type         = EFI_IFR_TYPE_STRING;\r
   Result->Value.string = NewString (SubString, FormSet->HiiHandle);\r
 \r
 Done:\r
   if (String[0] != NULL) {\r
     FreePool (String[0]);\r
   }\r
+\r
   if (String[1] != NULL) {\r
     FreePool (String[1]);\r
   }\r
@@ -1962,7 +1965,6 @@ Done:
   return Status;\r
 }\r
 \r
-\r
 /**\r
   Evaluate opcode EFI_IFR_SPAN.\r
 \r
@@ -2011,7 +2013,8 @@ IfrSpan (
     Result->Type = EFI_IFR_TYPE_UNDEFINED;\r
     return EFI_SUCCESS;\r
   }\r
-  Base = (UINTN) Value[0].Value.u64;\r
+\r
+  Base = (UINTN)Value[0].Value.u64;\r
 \r
   //\r
   // String[0] - Charset\r
@@ -2022,12 +2025,12 @@ IfrSpan (
   for (Index = 0; Index < 2; Index++) {\r
     if (Value[Index + 1].Type != EFI_IFR_TYPE_STRING) {\r
       Result->Type = EFI_IFR_TYPE_UNDEFINED;\r
-      Status = EFI_SUCCESS;\r
+      Status       = EFI_SUCCESS;\r
       goto Done;\r
     }\r
 \r
     String[Index] = GetToken (Value[Index + 1].Value.string, FormSet->HiiHandle);\r
-    if (String [Index] == NULL) {\r
+    if (String[Index] == NULL) {\r
       Status = EFI_NOT_FOUND;\r
       goto Done;\r
     }\r
@@ -2035,17 +2038,17 @@ IfrSpan (
 \r
   if (Base >= StrLen (String[1])) {\r
     Result->Type = EFI_IFR_TYPE_UNDEFINED;\r
-    Status = EFI_SUCCESS;\r
+    Status       = EFI_SUCCESS;\r
     goto Done;\r
   }\r
 \r
-  Found = FALSE;\r
+  Found     = FALSE;\r
   StringPtr = String[1] + Base;\r
-  Charset = String[0];\r
+  Charset   = String[0];\r
   while (*StringPtr != 0 && !Found) {\r
     Index = 0;\r
     while (Charset[Index] != 0) {\r
-      if (*StringPtr >= Charset[Index] && *StringPtr <= Charset[Index + 1]) {\r
+      if ((*StringPtr >= Charset[Index]) && (*StringPtr <= Charset[Index + 1])) {\r
         if (Flags == EFI_IFR_FLAGS_FIRST_MATCHING) {\r
           Found = TRUE;\r
           break;\r
@@ -2056,6 +2059,7 @@ IfrSpan (
           break;\r
         }\r
       }\r
+\r
       //\r
       // Skip characters pair representing low-end of a range and high-end of a range\r
       //\r
@@ -2067,13 +2071,14 @@ IfrSpan (
     }\r
   }\r
 \r
-  Result->Type = EFI_IFR_TYPE_NUM_SIZE_64;\r
+  Result->Type      = EFI_IFR_TYPE_NUM_SIZE_64;\r
   Result->Value.u64 = StringPtr - String[1];\r
 \r
 Done:\r
   if (String[0] != NULL) {\r
     FreePool (String[0]);\r
   }\r
+\r
   if (String[1] != NULL) {\r
     FreePool (String[1]);\r
   }\r
@@ -2081,7 +2086,6 @@ Done:
   return Status;\r
 }\r
 \r
-\r
 /**\r
   Zero extend integer/boolean/date/time to UINT64 for comparing.\r
 \r
@@ -2090,39 +2094,39 @@ Done:
 **/\r
 VOID\r
 ExtendValueToU64 (\r
-  IN  EFI_HII_VALUE   *Value\r
+  IN  EFI_HII_VALUE  *Value\r
   )\r
 {\r
   UINT64  Temp;\r
 \r
   Temp = 0;\r
   switch (Value->Type) {\r
-  case EFI_IFR_TYPE_NUM_SIZE_8:\r
-    Temp = Value->Value.u8;\r
-    break;\r
+    case EFI_IFR_TYPE_NUM_SIZE_8:\r
+      Temp = Value->Value.u8;\r
+      break;\r
 \r
-  case EFI_IFR_TYPE_NUM_SIZE_16:\r
-    Temp = Value->Value.u16;\r
-    break;\r
+    case EFI_IFR_TYPE_NUM_SIZE_16:\r
+      Temp = Value->Value.u16;\r
+      break;\r
 \r
-  case EFI_IFR_TYPE_NUM_SIZE_32:\r
-    Temp = Value->Value.u32;\r
-    break;\r
+    case EFI_IFR_TYPE_NUM_SIZE_32:\r
+      Temp = Value->Value.u32;\r
+      break;\r
 \r
-  case EFI_IFR_TYPE_BOOLEAN:\r
-    Temp = Value->Value.b;\r
-    break;\r
+    case EFI_IFR_TYPE_BOOLEAN:\r
+      Temp = Value->Value.b;\r
+      break;\r
 \r
-  case EFI_IFR_TYPE_TIME:\r
-    Temp = Value->Value.u32 & 0xffffff;\r
-    break;\r
+    case EFI_IFR_TYPE_TIME:\r
+      Temp = Value->Value.u32 & 0xffffff;\r
+      break;\r
 \r
-  case EFI_IFR_TYPE_DATE:\r
-    Temp = Value->Value.u32;\r
-    break;\r
+    case EFI_IFR_TYPE_DATE:\r
+      Temp = Value->Value.u32;\r
+      break;\r
 \r
-  default:\r
-    return;\r
+    default:\r
+      return;\r
   }\r
 \r
   Value->Value.u64 = Temp;\r
@@ -2138,7 +2142,7 @@ ExtendValueToU64 (
 **/\r
 UINT64\r
 HiiValueToUINT64 (\r
-  IN EFI_HII_VALUE      *Value\r
+  IN EFI_HII_VALUE  *Value\r
   )\r
 {\r
   UINT64  RetVal;\r
@@ -2146,33 +2150,33 @@ HiiValueToUINT64 (
   RetVal = 0;\r
 \r
   switch (Value->Type) {\r
-  case EFI_IFR_TYPE_NUM_SIZE_8:\r
-    RetVal = Value->Value.u8;\r
-    break;\r
+    case EFI_IFR_TYPE_NUM_SIZE_8:\r
+      RetVal = Value->Value.u8;\r
+      break;\r
 \r
-  case EFI_IFR_TYPE_NUM_SIZE_16:\r
-    RetVal = Value->Value.u16;\r
-    break;\r
+    case EFI_IFR_TYPE_NUM_SIZE_16:\r
+      RetVal = Value->Value.u16;\r
+      break;\r
 \r
-  case EFI_IFR_TYPE_NUM_SIZE_32:\r
-    RetVal = Value->Value.u32;\r
-    break;\r
+    case EFI_IFR_TYPE_NUM_SIZE_32:\r
+      RetVal = Value->Value.u32;\r
+      break;\r
 \r
-  case EFI_IFR_TYPE_BOOLEAN:\r
-    RetVal = Value->Value.b;\r
-    break;\r
+    case EFI_IFR_TYPE_BOOLEAN:\r
+      RetVal = Value->Value.b;\r
+      break;\r
 \r
-  case EFI_IFR_TYPE_DATE:\r
-    RetVal = *(UINT64*) &Value->Value.date;\r
-    break;\r
+    case EFI_IFR_TYPE_DATE:\r
+      RetVal = *(UINT64 *)&Value->Value.date;\r
+      break;\r
 \r
-  case EFI_IFR_TYPE_TIME:\r
-    RetVal = (*(UINT64*) &Value->Value.time) & 0xffffff;\r
-    break;\r
+    case EFI_IFR_TYPE_TIME:\r
+      RetVal = (*(UINT64 *)&Value->Value.time) & 0xffffff;\r
+      break;\r
 \r
-  default:\r
-    RetVal = Value->Value.u64;\r
-    break;\r
+    default:\r
+      RetVal = Value->Value.u64;\r
+      break;\r
   }\r
 \r
   return RetVal;\r
@@ -2210,8 +2214,8 @@ CompareHiiValue (
   UINT8   *Buf2;\r
   UINT16  Buf2Len;\r
 \r
-  if (Value1->Type == EFI_IFR_TYPE_STRING && Value2->Type == EFI_IFR_TYPE_STRING) {\r
-    if (Value1->Value.string == 0 || Value2->Value.string == 0) {\r
+  if ((Value1->Type == EFI_IFR_TYPE_STRING) && (Value2->Type == EFI_IFR_TYPE_STRING)) {\r
+    if ((Value1->Value.string == 0) || (Value2->Value.string == 0)) {\r
       //\r
       // StringId 0 is reserved\r
       //\r
@@ -2248,13 +2252,13 @@ CompareHiiValue (
   //\r
   // Take types(date, time, ref, buffer) as buffer\r
   //\r
-  if (IsTypeInBuffer(Value1) && IsTypeInBuffer(Value2)) {\r
-    Buf1    = GetBufferForValue(Value1);\r
-    Buf1Len = GetLengthForValue(Value1);\r
-    Buf2    = GetBufferForValue(Value2);\r
-    Buf2Len = GetLengthForValue(Value2);\r
+  if (IsTypeInBuffer (Value1) && IsTypeInBuffer (Value2)) {\r
+    Buf1    = GetBufferForValue (Value1);\r
+    Buf1Len = GetLengthForValue (Value1);\r
+    Buf2    = GetBufferForValue (Value2);\r
+    Buf2Len = GetLengthForValue (Value2);\r
 \r
-    Len = Buf1Len > Buf2Len ? Buf2Len : Buf1Len;\r
+    Len     = Buf1Len > Buf2Len ? Buf2Len : Buf1Len;\r
     *Result = CompareMem (Buf1, Buf2, Len);\r
     if ((*Result == 0) && (Buf1Len != Buf2Len)) {\r
       //\r
@@ -2263,14 +2267,15 @@ CompareHiiValue (
       //\r
       *Result = Buf1Len > Buf2Len ? 1 : -1;\r
     }\r
+\r
     return EFI_SUCCESS;\r
   }\r
 \r
   //\r
   // Take types(integer, boolean) as integer\r
   //\r
-  if (IsTypeInUINT64(Value1) && IsTypeInUINT64(Value2)) {\r
-    Temp64 = HiiValueToUINT64(Value1) - HiiValueToUINT64(Value2);\r
+  if (IsTypeInUINT64 (Value1) && IsTypeInUINT64 (Value2)) {\r
+    Temp64 = HiiValueToUINT64 (Value1) - HiiValueToUINT64 (Value2);\r
     if (Temp64 > 0) {\r
       *Result = 1;\r
     } else if (Temp64 < 0) {\r
@@ -2295,24 +2300,24 @@ CompareHiiValue (
 **/\r
 BOOLEAN\r
 CheckUserPrivilege (\r
-  IN EFI_GUID *Guid\r
+  IN EFI_GUID  *Guid\r
   )\r
 {\r
-  EFI_STATUS                   Status;\r
-  EFI_USER_PROFILE_HANDLE      UserProfileHandle;\r
-  EFI_USER_INFO_HANDLE         UserInfoHandle;\r
-  EFI_USER_INFO                *UserInfo;\r
-  EFI_GUID                     *UserPermissionsGuid;\r
-  UINTN                        UserInfoSize;\r
-  UINTN                        AccessControlDataSize;\r
-  EFI_USER_INFO_ACCESS_CONTROL *AccessControl;\r
-  UINTN                        RemainSize;\r
+  EFI_STATUS                    Status;\r
+  EFI_USER_PROFILE_HANDLE       UserProfileHandle;\r
+  EFI_USER_INFO_HANDLE          UserInfoHandle;\r
+  EFI_USER_INFO                 *UserInfo;\r
+  EFI_GUID                      *UserPermissionsGuid;\r
+  UINTN                         UserInfoSize;\r
+  UINTN                         AccessControlDataSize;\r
+  EFI_USER_INFO_ACCESS_CONTROL  *AccessControl;\r
+  UINTN                         RemainSize;\r
 \r
   if (mUserManager == NULL) {\r
     Status = gBS->LocateProtocol (\r
                     &gEfiUserManagerProtocolGuid,\r
                     NULL,\r
-                    (VOID **) &mUserManager\r
+                    (VOID **)&mUserManager\r
                     );\r
     if (EFI_ERROR (Status)) {\r
       ///\r
@@ -2332,59 +2337,64 @@ CheckUserPrivilege (
   /// to look for any EFI_USER_INFO_ACCESS_SETUP record.\r
   ///\r
 \r
-  for (UserInfoHandle = NULL;;) {\r
+  for (UserInfoHandle = NULL; ;) {\r
     Status = mUserManager->GetNextInfo (mUserManager, UserProfileHandle, &UserInfoHandle);\r
     if (EFI_ERROR (Status)) {\r
       break;\r
     }\r
 \r
     UserInfoSize = 0;\r
-    Status = mUserManager->GetInfo (mUserManager, UserProfileHandle, UserInfoHandle, NULL, &UserInfoSize);\r
+    Status       = mUserManager->GetInfo (mUserManager, UserProfileHandle, UserInfoHandle, NULL, &UserInfoSize);\r
     if (Status != EFI_BUFFER_TOO_SMALL) {\r
       continue;\r
     }\r
 \r
-    UserInfo = (EFI_USER_INFO *) AllocatePool (UserInfoSize);\r
+    UserInfo = (EFI_USER_INFO *)AllocatePool (UserInfoSize);\r
     if (UserInfo == NULL) {\r
       break;\r
     }\r
 \r
     Status = mUserManager->GetInfo (mUserManager, UserProfileHandle, UserInfoHandle, UserInfo, &UserInfoSize);\r
     if (EFI_ERROR (Status) ||\r
-        UserInfo->InfoType != EFI_USER_INFO_ACCESS_POLICY_RECORD ||\r
-        UserInfo->InfoSize <= sizeof (EFI_USER_INFO)) {\r
+        (UserInfo->InfoType != EFI_USER_INFO_ACCESS_POLICY_RECORD) ||\r
+        (UserInfo->InfoSize <= sizeof (EFI_USER_INFO)))\r
+    {\r
       FreePool (UserInfo);\r
       continue;\r
     }\r
 \r
-    RemainSize = UserInfo->InfoSize - sizeof (EFI_USER_INFO);\r
+    RemainSize    = UserInfo->InfoSize - sizeof (EFI_USER_INFO);\r
     AccessControl = (EFI_USER_INFO_ACCESS_CONTROL *)(UserInfo + 1);\r
     while (RemainSize >= sizeof (EFI_USER_INFO_ACCESS_CONTROL)) {\r
-      if (RemainSize < AccessControl->Size || AccessControl->Size < sizeof (EFI_USER_INFO_ACCESS_CONTROL)) {\r
+      if ((RemainSize < AccessControl->Size) || (AccessControl->Size < sizeof (EFI_USER_INFO_ACCESS_CONTROL))) {\r
         break;\r
       }\r
+\r
       if (AccessControl->Type == EFI_USER_INFO_ACCESS_SETUP) {\r
         ///\r
         /// Check if current user has the privilege specified by the permissions GUID.\r
         ///\r
 \r
-        UserPermissionsGuid = (EFI_GUID *)(AccessControl + 1);\r
+        UserPermissionsGuid   = (EFI_GUID *)(AccessControl + 1);\r
         AccessControlDataSize = AccessControl->Size - sizeof (EFI_USER_INFO_ACCESS_CONTROL);\r
         while (AccessControlDataSize >= sizeof (EFI_GUID)) {\r
           if (CompareGuid (Guid, UserPermissionsGuid)) {\r
             FreePool (UserInfo);\r
             return TRUE;\r
           }\r
+\r
           UserPermissionsGuid++;\r
           AccessControlDataSize -= sizeof (EFI_GUID);\r
         }\r
       }\r
-      RemainSize -= AccessControl->Size;\r
+\r
+      RemainSize   -= AccessControl->Size;\r
       AccessControl = (EFI_USER_INFO_ACCESS_CONTROL *)((UINT8 *)AccessControl + AccessControl->Size);\r
     }\r
 \r
     FreePool (UserInfo);\r
   }\r
+\r
   return FALSE;\r
 }\r
 \r
@@ -2409,24 +2419,26 @@ GetQuestionValueFromForm (
   OUT EFI_HII_VALUE            *Value\r
   )\r
 {\r
-  EFI_STATUS                   Status;\r
-  EFI_HII_HANDLE               HiiHandle;\r
-  FORM_BROWSER_STATEMENT       *Question;\r
-  FORM_BROWSER_FORMSET         *FormSet;\r
-  FORM_BROWSER_FORM            *Form;\r
-  BOOLEAN                      GetTheVal;\r
-  LIST_ENTRY                   *Link;\r
+  EFI_STATUS              Status;\r
+  EFI_HII_HANDLE          HiiHandle;\r
+  FORM_BROWSER_STATEMENT  *Question;\r
+  FORM_BROWSER_FORMSET    *FormSet;\r
+  FORM_BROWSER_FORM       *Form;\r
+  BOOLEAN                 GetTheVal;\r
+  LIST_ENTRY              *Link;\r
 \r
   //\r
   // The input parameter DevicePath or InputHiiHandle must have one valid input.\r
   //\r
-  ASSERT ((DevicePath != NULL && InputHiiHandle == NULL) ||\r
-          (DevicePath == NULL && InputHiiHandle != NULL) );\r
+  ASSERT (\r
+    (DevicePath != NULL && InputHiiHandle == NULL) ||\r
+    (DevicePath == NULL && InputHiiHandle != NULL)\r
+    );\r
 \r
-  GetTheVal    = TRUE;\r
-  HiiHandle    = NULL;\r
-  Question     = NULL;\r
-  Form         = NULL;\r
+  GetTheVal = TRUE;\r
+  HiiHandle = NULL;\r
+  Question  = NULL;\r
+  Form      = NULL;\r
 \r
   //\r
   // Get HiiHandle.\r
@@ -2439,6 +2451,7 @@ GetQuestionValueFromForm (
   } else {\r
     HiiHandle = InputHiiHandle;\r
   }\r
+\r
   ASSERT (HiiHandle != NULL);\r
 \r
   //\r
@@ -2446,7 +2459,7 @@ GetQuestionValueFromForm (
   //\r
   FormSet = AllocateZeroPool (sizeof (FORM_BROWSER_FORMSET));\r
   ASSERT (FormSet != NULL);\r
-  Status = InitializeFormSet(HiiHandle, FormSetGuid, FormSet);\r
+  Status = InitializeFormSet (HiiHandle, FormSetGuid, FormSet);\r
   if (EFI_ERROR (Status)) {\r
     GetTheVal = FALSE;\r
     goto Done;\r
@@ -2455,7 +2468,7 @@ GetQuestionValueFromForm (
   //\r
   // Base on the Question Id to get the question info.\r
   //\r
-  Question = IdToQuestion(FormSet, NULL, QuestionId);\r
+  Question = IdToQuestion (FormSet, NULL, QuestionId);\r
   if (Question == NULL) {\r
     GetTheVal = FALSE;\r
     goto Done;\r
@@ -2476,12 +2489,13 @@ GetQuestionValueFromForm (
     Link = GetNextNode (&FormSet->FormListHead, Link);\r
     Form = NULL;\r
   }\r
+\r
   ASSERT (Form != NULL);\r
 \r
   //\r
   // Get the question value.\r
   //\r
-  Status = GetQuestionValue(FormSet, Form, Question, GetSetValueWithEditBuffer);\r
+  Status = GetQuestionValue (FormSet, Form, Question, GetSetValueWithEditBuffer);\r
   if (EFI_ERROR (Status)) {\r
     GetTheVal = FALSE;\r
     goto Done;\r
@@ -2525,31 +2539,31 @@ EvaluateExpression (
   IN OUT FORM_EXPRESSION   *Expression\r
   )\r
 {\r
-  EFI_STATUS              Status;\r
-  LIST_ENTRY              *Link;\r
-  EXPRESSION_OPCODE       *OpCode;\r
-  FORM_BROWSER_STATEMENT  *Question;\r
-  FORM_BROWSER_STATEMENT  *Question2;\r
-  UINT16                  Index;\r
-  EFI_HII_VALUE           Data1;\r
-  EFI_HII_VALUE           Data2;\r
-  EFI_HII_VALUE           Data3;\r
-  FORM_EXPRESSION         *RuleExpression;\r
-  EFI_HII_VALUE           *Value;\r
-  INTN                    Result;\r
-  CHAR16                  *StrPtr;\r
-  CHAR16                  *NameValue;\r
-  UINT32                  TempValue;\r
-  LIST_ENTRY              *SubExpressionLink;\r
-  FORM_EXPRESSION         *SubExpression;\r
-  UINTN                   StackOffset;\r
-  UINTN                   TempLength;\r
-  CHAR16                  TempStr[5];\r
-  UINT8                   DigitUint8;\r
-  UINT8                   *TempBuffer;\r
-  EFI_TIME                EfiTime;\r
-  EFI_HII_VALUE           QuestionVal;\r
-  EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
+  EFI_STATUS                Status;\r
+  LIST_ENTRY                *Link;\r
+  EXPRESSION_OPCODE         *OpCode;\r
+  FORM_BROWSER_STATEMENT    *Question;\r
+  FORM_BROWSER_STATEMENT    *Question2;\r
+  UINT16                    Index;\r
+  EFI_HII_VALUE             Data1;\r
+  EFI_HII_VALUE             Data2;\r
+  EFI_HII_VALUE             Data3;\r
+  FORM_EXPRESSION           *RuleExpression;\r
+  EFI_HII_VALUE             *Value;\r
+  INTN                      Result;\r
+  CHAR16                    *StrPtr;\r
+  CHAR16                    *NameValue;\r
+  UINT32                    TempValue;\r
+  LIST_ENTRY                *SubExpressionLink;\r
+  FORM_EXPRESSION           *SubExpression;\r
+  UINTN                     StackOffset;\r
+  UINTN                     TempLength;\r
+  CHAR16                    TempStr[5];\r
+  UINT8                     DigitUint8;\r
+  UINT8                     *TempBuffer;\r
+  EFI_TIME                  EfiTime;\r
+  EFI_HII_VALUE             QuestionVal;\r
+  EFI_DEVICE_PATH_PROTOCOL  *DevicePath;\r
 \r
   StrPtr = NULL;\r
 \r
@@ -2571,1020 +2585,1063 @@ EvaluateExpression (
     ZeroMem (&Data2, sizeof (EFI_HII_VALUE));\r
     ZeroMem (&Data3, sizeof (EFI_HII_VALUE));\r
 \r
-    Value = &Data3;\r
+    Value       = &Data3;\r
     Value->Type = EFI_IFR_TYPE_BOOLEAN;\r
-    Status = EFI_SUCCESS;\r
+    Status      = EFI_SUCCESS;\r
 \r
     switch (OpCode->Operand) {\r
-    //\r
-    // Built-in functions\r
-    //\r
-    case EFI_IFR_EQ_ID_VAL_OP:\r
-      Question = IdToQuestion (FormSet, Form, OpCode->QuestionId);\r
-      if (Question == NULL) {\r
-        Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
-        break;\r
-      }\r
+      //\r
+      // Built-in functions\r
+      //\r
+      case EFI_IFR_EQ_ID_VAL_OP:\r
+        Question = IdToQuestion (FormSet, Form, OpCode->QuestionId);\r
+        if (Question == NULL) {\r
+          Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+          break;\r
+        }\r
 \r
-      Status = CompareHiiValue (&Question->HiiValue, &OpCode->Value, &Result, NULL);\r
-      if (Status == EFI_UNSUPPORTED) {\r
-        Status = EFI_SUCCESS;\r
-        Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
-        break;\r
-      }\r
+        Status = CompareHiiValue (&Question->HiiValue, &OpCode->Value, &Result, NULL);\r
+        if (Status == EFI_UNSUPPORTED) {\r
+          Status      = EFI_SUCCESS;\r
+          Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+          break;\r
+        }\r
 \r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
-      Value->Value.b = (BOOLEAN) ((Result == 0) ? TRUE : FALSE);\r
-      break;\r
+        if (EFI_ERROR (Status)) {\r
+          goto Done;\r
+        }\r
 \r
-    case EFI_IFR_EQ_ID_ID_OP:\r
-      Question = IdToQuestion (FormSet, Form, OpCode->QuestionId);\r
-      if (Question == NULL) {\r
-        Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+        Value->Value.b = (BOOLEAN)((Result == 0) ? TRUE : FALSE);\r
         break;\r
-      }\r
 \r
-      Question2 = IdToQuestion (FormSet, Form, OpCode->QuestionId2);\r
-      if (Question2 == NULL) {\r
-        Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
-        break;\r
-      }\r
+      case EFI_IFR_EQ_ID_ID_OP:\r
+        Question = IdToQuestion (FormSet, Form, OpCode->QuestionId);\r
+        if (Question == NULL) {\r
+          Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+          break;\r
+        }\r
 \r
-      Status = CompareHiiValue (&Question->HiiValue, &Question2->HiiValue, &Result, FormSet->HiiHandle);\r
-      if (Status == EFI_UNSUPPORTED) {\r
-        Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
-        Status = EFI_SUCCESS;\r
-        break;\r
-      }\r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
-      Value->Value.b = (BOOLEAN) ((Result == 0) ? TRUE : FALSE);\r
-      break;\r
+        Question2 = IdToQuestion (FormSet, Form, OpCode->QuestionId2);\r
+        if (Question2 == NULL) {\r
+          Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+          break;\r
+        }\r
+\r
+        Status = CompareHiiValue (&Question->HiiValue, &Question2->HiiValue, &Result, FormSet->HiiHandle);\r
+        if (Status == EFI_UNSUPPORTED) {\r
+          Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+          Status      = EFI_SUCCESS;\r
+          break;\r
+        }\r
+\r
+        if (EFI_ERROR (Status)) {\r
+          goto Done;\r
+        }\r
 \r
-    case EFI_IFR_EQ_ID_VAL_LIST_OP:\r
-      Question = IdToQuestion (FormSet, Form, OpCode->QuestionId);\r
-      if (Question == NULL) {\r
-        Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+        Value->Value.b = (BOOLEAN)((Result == 0) ? TRUE : FALSE);\r
         break;\r
-      }\r
 \r
-      Value->Value.b = FALSE;\r
-      for (Index =0; Index < OpCode->ListLength; Index++) {\r
-        if (Question->HiiValue.Value.u16 == OpCode->ValueList[Index]) {\r
-          Value->Value.b = TRUE;\r
+      case EFI_IFR_EQ_ID_VAL_LIST_OP:\r
+        Question = IdToQuestion (FormSet, Form, OpCode->QuestionId);\r
+        if (Question == NULL) {\r
+          Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
           break;\r
         }\r
-      }\r
-      break;\r
 \r
-    case EFI_IFR_DUP_OP:\r
-      Status = PopExpression (Value);\r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
+        Value->Value.b = FALSE;\r
+        for (Index = 0; Index < OpCode->ListLength; Index++) {\r
+          if (Question->HiiValue.Value.u16 == OpCode->ValueList[Index]) {\r
+            Value->Value.b = TRUE;\r
+            break;\r
+          }\r
+        }\r
 \r
-      Status = PushExpression (Value);\r
-      break;\r
+        break;\r
 \r
-    case EFI_IFR_QUESTION_REF1_OP:\r
-    case EFI_IFR_THIS_OP:\r
-      Question = IdToQuestion (FormSet, Form, OpCode->QuestionId);\r
-      if (Question == NULL) {\r
-        Status = EFI_NOT_FOUND;\r
-        goto Done;\r
-      }\r
+      case EFI_IFR_DUP_OP:\r
+        Status = PopExpression (Value);\r
+        if (EFI_ERROR (Status)) {\r
+          goto Done;\r
+        }\r
 \r
-      Value = &Question->HiiValue;\r
-      break;\r
+        Status = PushExpression (Value);\r
+        break;\r
 \r
-    case EFI_IFR_SECURITY_OP:\r
-      Value->Value.b = CheckUserPrivilege (&OpCode->Guid);\r
-      break;\r
+      case EFI_IFR_QUESTION_REF1_OP:\r
+      case EFI_IFR_THIS_OP:\r
+        Question = IdToQuestion (FormSet, Form, OpCode->QuestionId);\r
+        if (Question == NULL) {\r
+          Status = EFI_NOT_FOUND;\r
+          goto Done;\r
+        }\r
 \r
-    case EFI_IFR_GET_OP:\r
-      //\r
-      // Get Value from VarStore buffer, EFI VarStore, Name/Value VarStore.\r
-      //\r
-      Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
-      Value->Value.u8 = 0;\r
-      if (OpCode->VarStorage != NULL) {\r
-        switch (OpCode->VarStorage->Type) {\r
-        case EFI_HII_VARSTORE_BUFFER:\r
-        case EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER:\r
-          //\r
-          // Get value from Edit Buffer\r
-          //\r
-          Value->Type = OpCode->ValueType;\r
-          CopyMem (&Value->Value, OpCode->VarStorage->EditBuffer + OpCode->VarStoreInfo.VarOffset, OpCode->ValueWidth);\r
-          break;\r
-        case EFI_HII_VARSTORE_NAME_VALUE:\r
-          if (OpCode->ValueType != EFI_IFR_TYPE_STRING) {\r
-            //\r
-            // Get value from string except for STRING value.\r
-            //\r
-            Status = GetValueByName (OpCode->VarStorage, OpCode->ValueName, &StrPtr, GetSetValueWithEditBuffer);\r
-            if (!EFI_ERROR (Status)) {\r
-              ASSERT (StrPtr != NULL);\r
-              TempLength = StrLen (StrPtr);\r
-              if (OpCode->ValueWidth >= ((TempLength + 1) / 2)) {\r
-                Value->Type = OpCode->ValueType;\r
-                TempBuffer = (UINT8 *) &Value->Value;\r
-                ZeroMem (TempStr, sizeof (TempStr));\r
-                for (Index = 0; Index < TempLength; Index ++) {\r
-                  TempStr[0] = StrPtr[TempLength - Index - 1];\r
-                  DigitUint8 = (UINT8) StrHexToUint64 (TempStr);\r
-                  if ((Index & 1) == 0) {\r
-                    TempBuffer [Index/2] = DigitUint8;\r
-                  } else {\r
-                    TempBuffer [Index/2] = (UINT8) ((DigitUint8 << 4) + TempBuffer [Index/2]);\r
-                  }\r
-                }\r
-              }\r
-            }\r
-          }\r
-          break;\r
-        case EFI_HII_VARSTORE_EFI_VARIABLE:\r
-          //\r
-          // Get value from variable.\r
-          //\r
-          TempLength = OpCode->ValueWidth;\r
-          Value->Type = OpCode->ValueType;\r
-          Status = gRT->GetVariable (\r
-                          OpCode->ValueName,\r
-                          &OpCode->VarStorage->Guid,\r
-                          NULL,\r
-                          &TempLength,\r
-                          &Value->Value\r
-                          );\r
-          if (EFI_ERROR (Status)) {\r
-            Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
-            Value->Value.u8 = 0;\r
-          }\r
-          break;\r
-        default:\r
-          //\r
-          // Not recognize storage.\r
-          //\r
-          Status = EFI_UNSUPPORTED;\r
-          goto Done;\r
-        }\r
-      } else {\r
+        Value = &Question->HiiValue;\r
+        break;\r
+\r
+      case EFI_IFR_SECURITY_OP:\r
+        Value->Value.b = CheckUserPrivilege (&OpCode->Guid);\r
+        break;\r
+\r
+      case EFI_IFR_GET_OP:\r
         //\r
-        // For Time/Date Data\r
+        // Get Value from VarStore buffer, EFI VarStore, Name/Value VarStore.\r
         //\r
-        if (OpCode->ValueType != EFI_IFR_TYPE_DATE && OpCode->ValueType != EFI_IFR_TYPE_TIME) {\r
-          //\r
-          // Only support Data/Time data when storage doesn't exist.\r
-          //\r
-          Status = EFI_UNSUPPORTED;\r
-          goto Done;\r
-        }\r
-        Status = gRT->GetTime (&EfiTime, NULL);\r
-        if (!EFI_ERROR (Status)) {\r
-          if (OpCode->ValueType == EFI_IFR_TYPE_DATE) {\r
-            switch (OpCode->VarStoreInfo.VarOffset) {\r
-            case 0x00:\r
-              Value->Type = EFI_IFR_TYPE_NUM_SIZE_16;\r
-              Value->Value.u16 = EfiTime.Year;\r
-              break;\r
-            case 0x02:\r
-              Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;\r
-              Value->Value.u8 = EfiTime.Month;\r
-              break;\r
-            case 0x03:\r
-              Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;\r
-              Value->Value.u8 = EfiTime.Day;\r
-              break;\r
-            default:\r
+        Value->Type     = EFI_IFR_TYPE_UNDEFINED;\r
+        Value->Value.u8 = 0;\r
+        if (OpCode->VarStorage != NULL) {\r
+          switch (OpCode->VarStorage->Type) {\r
+            case EFI_HII_VARSTORE_BUFFER:\r
+            case EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER:\r
               //\r
-              // Invalid Date field.\r
+              // Get value from Edit Buffer\r
               //\r
-              Status = EFI_INVALID_PARAMETER;\r
-              goto Done;\r
-            }\r
-          } else {\r
-            switch (OpCode->VarStoreInfo.VarOffset) {\r
-            case 0x00:\r
-              Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;\r
-              Value->Value.u8 = EfiTime.Hour;\r
+              Value->Type = OpCode->ValueType;\r
+              CopyMem (&Value->Value, OpCode->VarStorage->EditBuffer + OpCode->VarStoreInfo.VarOffset, OpCode->ValueWidth);\r
               break;\r
-            case 0x01:\r
-              Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;\r
-              Value->Value.u8 = EfiTime.Minute;\r
+            case EFI_HII_VARSTORE_NAME_VALUE:\r
+              if (OpCode->ValueType != EFI_IFR_TYPE_STRING) {\r
+                //\r
+                // Get value from string except for STRING value.\r
+                //\r
+                Status = GetValueByName (OpCode->VarStorage, OpCode->ValueName, &StrPtr, GetSetValueWithEditBuffer);\r
+                if (!EFI_ERROR (Status)) {\r
+                  ASSERT (StrPtr != NULL);\r
+                  TempLength = StrLen (StrPtr);\r
+                  if (OpCode->ValueWidth >= ((TempLength + 1) / 2)) {\r
+                    Value->Type = OpCode->ValueType;\r
+                    TempBuffer  = (UINT8 *)&Value->Value;\r
+                    ZeroMem (TempStr, sizeof (TempStr));\r
+                    for (Index = 0; Index < TempLength; Index++) {\r
+                      TempStr[0] = StrPtr[TempLength - Index - 1];\r
+                      DigitUint8 = (UINT8)StrHexToUint64 (TempStr);\r
+                      if ((Index & 1) == 0) {\r
+                        TempBuffer[Index/2] = DigitUint8;\r
+                      } else {\r
+                        TempBuffer[Index/2] = (UINT8)((DigitUint8 << 4) + TempBuffer[Index/2]);\r
+                      }\r
+                    }\r
+                  }\r
+                }\r
+              }\r
+\r
               break;\r
-            case 0x02:\r
-              Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;\r
-              Value->Value.u8 = EfiTime.Second;\r
+            case EFI_HII_VARSTORE_EFI_VARIABLE:\r
+              //\r
+              // Get value from variable.\r
+              //\r
+              TempLength  = OpCode->ValueWidth;\r
+              Value->Type = OpCode->ValueType;\r
+              Status      = gRT->GetVariable (\r
+                                   OpCode->ValueName,\r
+                                   &OpCode->VarStorage->Guid,\r
+                                   NULL,\r
+                                   &TempLength,\r
+                                   &Value->Value\r
+                                   );\r
+              if (EFI_ERROR (Status)) {\r
+                Value->Type     = EFI_IFR_TYPE_UNDEFINED;\r
+                Value->Value.u8 = 0;\r
+              }\r
+\r
               break;\r
             default:\r
               //\r
-              // Invalid Time field.\r
+              // Not recognize storage.\r
               //\r
-              Status = EFI_INVALID_PARAMETER;\r
+              Status = EFI_UNSUPPORTED;\r
               goto Done;\r
+          }\r
+        } else {\r
+          //\r
+          // For Time/Date Data\r
+          //\r
+          if ((OpCode->ValueType != EFI_IFR_TYPE_DATE) && (OpCode->ValueType != EFI_IFR_TYPE_TIME)) {\r
+            //\r
+            // Only support Data/Time data when storage doesn't exist.\r
+            //\r
+            Status = EFI_UNSUPPORTED;\r
+            goto Done;\r
+          }\r
+\r
+          Status = gRT->GetTime (&EfiTime, NULL);\r
+          if (!EFI_ERROR (Status)) {\r
+            if (OpCode->ValueType == EFI_IFR_TYPE_DATE) {\r
+              switch (OpCode->VarStoreInfo.VarOffset) {\r
+                case 0x00:\r
+                  Value->Type      = EFI_IFR_TYPE_NUM_SIZE_16;\r
+                  Value->Value.u16 = EfiTime.Year;\r
+                  break;\r
+                case 0x02:\r
+                  Value->Type     = EFI_IFR_TYPE_NUM_SIZE_8;\r
+                  Value->Value.u8 = EfiTime.Month;\r
+                  break;\r
+                case 0x03:\r
+                  Value->Type     = EFI_IFR_TYPE_NUM_SIZE_8;\r
+                  Value->Value.u8 = EfiTime.Day;\r
+                  break;\r
+                default:\r
+                  //\r
+                  // Invalid Date field.\r
+                  //\r
+                  Status = EFI_INVALID_PARAMETER;\r
+                  goto Done;\r
+              }\r
+            } else {\r
+              switch (OpCode->VarStoreInfo.VarOffset) {\r
+                case 0x00:\r
+                  Value->Type     = EFI_IFR_TYPE_NUM_SIZE_8;\r
+                  Value->Value.u8 = EfiTime.Hour;\r
+                  break;\r
+                case 0x01:\r
+                  Value->Type     = EFI_IFR_TYPE_NUM_SIZE_8;\r
+                  Value->Value.u8 = EfiTime.Minute;\r
+                  break;\r
+                case 0x02:\r
+                  Value->Type     = EFI_IFR_TYPE_NUM_SIZE_8;\r
+                  Value->Value.u8 = EfiTime.Second;\r
+                  break;\r
+                default:\r
+                  //\r
+                  // Invalid Time field.\r
+                  //\r
+                  Status = EFI_INVALID_PARAMETER;\r
+                  goto Done;\r
+              }\r
             }\r
           }\r
         }\r
-      }\r
 \r
-      break;\r
+        break;\r
 \r
-    case EFI_IFR_QUESTION_REF3_OP:\r
-      //\r
-      // EFI_IFR_QUESTION_REF3\r
-      // Pop an expression from the expression stack\r
-      //\r
-      Status = PopExpression (Value);\r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
+      case EFI_IFR_QUESTION_REF3_OP:\r
+        //\r
+        // EFI_IFR_QUESTION_REF3\r
+        // Pop an expression from the expression stack\r
+        //\r
+        Status = PopExpression (Value);\r
+        if (EFI_ERROR (Status)) {\r
+          goto Done;\r
+        }\r
 \r
-      //\r
-      // Validate the expression value\r
-      //\r
-      if ((Value->Type > EFI_IFR_TYPE_NUM_SIZE_64) || (Value->Value.u64 > 0xffff)) {\r
-        Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
-        break;\r
-      }\r
+        //\r
+        // Validate the expression value\r
+        //\r
+        if ((Value->Type > EFI_IFR_TYPE_NUM_SIZE_64) || (Value->Value.u64 > 0xffff)) {\r
+          Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+          break;\r
+        }\r
 \r
-      if (OpCode->DevicePath != 0) {\r
-        Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+        if (OpCode->DevicePath != 0) {\r
+          Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+\r
+          StrPtr = GetToken (OpCode->DevicePath, FormSet->HiiHandle);\r
+          if ((StrPtr != NULL) && (mPathFromText != NULL)) {\r
+            DevicePath = mPathFromText->ConvertTextToDevicePath (StrPtr);\r
+            if ((DevicePath != NULL) && GetQuestionValueFromForm (DevicePath, NULL, &OpCode->Guid, Value->Value.u16, &QuestionVal)) {\r
+              Value = &QuestionVal;\r
+            }\r
 \r
-        StrPtr = GetToken (OpCode->DevicePath, FormSet->HiiHandle);\r
-        if (StrPtr != NULL && mPathFromText != NULL) {\r
-          DevicePath = mPathFromText->ConvertTextToDevicePath(StrPtr);\r
-          if (DevicePath != NULL && GetQuestionValueFromForm(DevicePath, NULL, &OpCode->Guid, Value->Value.u16, &QuestionVal)) {\r
-            Value = &QuestionVal;\r
+            if (DevicePath != NULL) {\r
+              FreePool (DevicePath);\r
+            }\r
           }\r
-          if (DevicePath != NULL) {\r
-            FreePool (DevicePath);\r
+\r
+          if (StrPtr != NULL) {\r
+            FreePool (StrPtr);\r
+          }\r
+        } else if (IsZeroGuid (&OpCode->Guid)) {\r
+          if (!GetQuestionValueFromForm (NULL, FormSet->HiiHandle, &OpCode->Guid, Value->Value.u16, &QuestionVal)) {\r
+            Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+            break;\r
           }\r
-        }\r
 \r
-        if (StrPtr != NULL) {\r
-          FreePool (StrPtr);\r
+          Value = &QuestionVal;\r
+        } else {\r
+          Question = IdToQuestion (FormSet, Form, Value->Value.u16);\r
+          if (Question == NULL) {\r
+            Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+            break;\r
+          }\r
+\r
+          //\r
+          // push the questions' value on to the expression stack\r
+          //\r
+          Value = &Question->HiiValue;\r
         }\r
-      } else if (IsZeroGuid (&OpCode->Guid)) {\r
-        if (!GetQuestionValueFromForm(NULL, FormSet->HiiHandle, &OpCode->Guid, Value->Value.u16, &QuestionVal)){\r
+\r
+        break;\r
+\r
+      case EFI_IFR_RULE_REF_OP:\r
+        //\r
+        // Find expression for this rule\r
+        //\r
+        RuleExpression = RuleIdToExpression (Form, OpCode->RuleId);\r
+        if (RuleExpression == NULL) {\r
           Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
           break;\r
         }\r
-        Value = &QuestionVal;\r
-      } else {\r
-        Question = IdToQuestion (FormSet, Form, Value->Value.u16);\r
-        if (Question == NULL) {\r
+\r
+        //\r
+        // Evaluate this rule expression\r
+        //\r
+        Status = EvaluateExpression (FormSet, Form, RuleExpression);\r
+        if (EFI_ERROR (Status) || (RuleExpression->Result.Type == EFI_IFR_TYPE_UNDEFINED)) {\r
           Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
           break;\r
         }\r
 \r
-        //\r
-        // push the questions' value on to the expression stack\r
-        //\r
-        Value = &Question->HiiValue;\r
-      }\r
-      break;\r
+        Value = &RuleExpression->Result;\r
+        break;\r
+\r
+      case EFI_IFR_STRING_REF1_OP:\r
+        Value->Type         = EFI_IFR_TYPE_STRING;\r
+        Value->Value.string = OpCode->Value.Value.string;\r
+        break;\r
 \r
-    case EFI_IFR_RULE_REF_OP:\r
-      //\r
-      // Find expression for this rule\r
       //\r
-      RuleExpression = RuleIdToExpression (Form, OpCode->RuleId);\r
-      if (RuleExpression == NULL) {\r
-        Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+      // Constant\r
+      //\r
+      case EFI_IFR_TRUE_OP:\r
+      case EFI_IFR_FALSE_OP:\r
+      case EFI_IFR_ONE_OP:\r
+      case EFI_IFR_ONES_OP:\r
+      case EFI_IFR_UINT8_OP:\r
+      case EFI_IFR_UINT16_OP:\r
+      case EFI_IFR_UINT32_OP:\r
+      case EFI_IFR_UINT64_OP:\r
+      case EFI_IFR_UNDEFINED_OP:\r
+      case EFI_IFR_VERSION_OP:\r
+      case EFI_IFR_ZERO_OP:\r
+        Value = &OpCode->Value;\r
         break;\r
-      }\r
 \r
       //\r
-      // Evaluate this rule expression\r
+      // unary-op\r
       //\r
-      Status = EvaluateExpression (FormSet, Form, RuleExpression);\r
-      if (EFI_ERROR (Status) || RuleExpression->Result.Type == EFI_IFR_TYPE_UNDEFINED) {\r
-        Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
-        break;\r
-      }\r
+      case EFI_IFR_LENGTH_OP:\r
+        Status = PopExpression (Value);\r
+        if (EFI_ERROR (Status)) {\r
+          goto Done;\r
+        }\r
 \r
-      Value = &RuleExpression->Result;\r
-      break;\r
+        if ((Value->Type != EFI_IFR_TYPE_STRING) && !IsTypeInBuffer (Value)) {\r
+          Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+          break;\r
+        }\r
 \r
-    case EFI_IFR_STRING_REF1_OP:\r
-      Value->Type = EFI_IFR_TYPE_STRING;\r
-      Value->Value.string = OpCode->Value.Value.string;\r
-      break;\r
+        if (Value->Type == EFI_IFR_TYPE_STRING) {\r
+          StrPtr = GetToken (Value->Value.string, FormSet->HiiHandle);\r
+          if (StrPtr == NULL) {\r
+            Status = EFI_INVALID_PARAMETER;\r
+            goto Done;\r
+          }\r
 \r
-    //\r
-    // Constant\r
-    //\r
-    case EFI_IFR_TRUE_OP:\r
-    case EFI_IFR_FALSE_OP:\r
-    case EFI_IFR_ONE_OP:\r
-    case EFI_IFR_ONES_OP:\r
-    case EFI_IFR_UINT8_OP:\r
-    case EFI_IFR_UINT16_OP:\r
-    case EFI_IFR_UINT32_OP:\r
-    case EFI_IFR_UINT64_OP:\r
-    case EFI_IFR_UNDEFINED_OP:\r
-    case EFI_IFR_VERSION_OP:\r
-    case EFI_IFR_ZERO_OP:\r
-      Value = &OpCode->Value;\r
-      break;\r
+          Value->Type      = EFI_IFR_TYPE_NUM_SIZE_64;\r
+          Value->Value.u64 = StrLen (StrPtr);\r
+          FreePool (StrPtr);\r
+        } else {\r
+          Value->Type      = EFI_IFR_TYPE_NUM_SIZE_64;\r
+          Value->Value.u64 = GetLengthForValue (Value);\r
+          FreePool (Value->Buffer);\r
+        }\r
 \r
-    //\r
-    // unary-op\r
-    //\r
-    case EFI_IFR_LENGTH_OP:\r
-      Status = PopExpression (Value);\r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
-      if (Value->Type != EFI_IFR_TYPE_STRING && !IsTypeInBuffer (Value)) {\r
-        Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
         break;\r
-      }\r
 \r
-      if (Value->Type == EFI_IFR_TYPE_STRING) {\r
-        StrPtr = GetToken (Value->Value.string, FormSet->HiiHandle);\r
-        if (StrPtr == NULL) {\r
-          Status = EFI_INVALID_PARAMETER;\r
+      case EFI_IFR_NOT_OP:\r
+        Status = PopExpression (Value);\r
+        if (EFI_ERROR (Status)) {\r
           goto Done;\r
         }\r
 \r
-        Value->Type = EFI_IFR_TYPE_NUM_SIZE_64;\r
-        Value->Value.u64 = StrLen (StrPtr);\r
-        FreePool (StrPtr);\r
-      } else {\r
-        Value->Type = EFI_IFR_TYPE_NUM_SIZE_64;\r
-        Value->Value.u64 = GetLengthForValue(Value);\r
-        FreePool (Value->Buffer);\r
-      }\r
-      break;\r
-\r
-    case EFI_IFR_NOT_OP:\r
-      Status = PopExpression (Value);\r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
-      if (Value->Type != EFI_IFR_TYPE_BOOLEAN) {\r
-        Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
-        break;\r
-      }\r
-      Value->Value.b = (BOOLEAN) (!Value->Value.b);\r
-      break;\r
-\r
-    case EFI_IFR_QUESTION_REF2_OP:\r
-      //\r
-      // Pop an expression from the expression stack\r
-      //\r
-      Status = PopExpression (Value);\r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
+        if (Value->Type != EFI_IFR_TYPE_BOOLEAN) {\r
+          Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+          break;\r
+        }\r
 \r
-      //\r
-      // Validate the expression value\r
-      //\r
-      if ((Value->Type > EFI_IFR_TYPE_NUM_SIZE_64) || (Value->Value.u64 > 0xffff)) {\r
-        Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+        Value->Value.b = (BOOLEAN)(!Value->Value.b);\r
         break;\r
-      }\r
 \r
-      Question = IdToQuestion (FormSet, Form, Value->Value.u16);\r
-      if (Question == NULL) {\r
-        Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
-        break;\r
-      }\r
+      case EFI_IFR_QUESTION_REF2_OP:\r
+        //\r
+        // Pop an expression from the expression stack\r
+        //\r
+        Status = PopExpression (Value);\r
+        if (EFI_ERROR (Status)) {\r
+          goto Done;\r
+        }\r
 \r
-      Value = &Question->HiiValue;\r
-      break;\r
+        //\r
+        // Validate the expression value\r
+        //\r
+        if ((Value->Type > EFI_IFR_TYPE_NUM_SIZE_64) || (Value->Value.u64 > 0xffff)) {\r
+          Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+          break;\r
+        }\r
 \r
-    case EFI_IFR_STRING_REF2_OP:\r
-      //\r
-      // Pop an expression from the expression stack\r
-      //\r
-      Status = PopExpression (Value);\r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
+        Question = IdToQuestion (FormSet, Form, Value->Value.u16);\r
+        if (Question == NULL) {\r
+          Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+          break;\r
+        }\r
 \r
-      //\r
-      // Validate the expression value\r
-      //\r
-      if ((Value->Type > EFI_IFR_TYPE_NUM_SIZE_64) || (Value->Value.u64 > 0xffff)) {\r
-        Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+        Value = &Question->HiiValue;\r
         break;\r
-      }\r
 \r
-      Value->Type = EFI_IFR_TYPE_STRING;\r
-      StrPtr = GetToken (Value->Value.u16, FormSet->HiiHandle);\r
-      if (StrPtr == NULL) {\r
+      case EFI_IFR_STRING_REF2_OP:\r
         //\r
-        // If String not exit, push an empty string\r
+        // Pop an expression from the expression stack\r
         //\r
-        Value->Value.string = NewString (gEmptyString, FormSet->HiiHandle);\r
-      } else {\r
-        Index = (UINT16) Value->Value.u64;\r
-        Value->Value.string = Index;\r
-        FreePool (StrPtr);\r
-      }\r
-      break;\r
-\r
-    case EFI_IFR_TO_BOOLEAN_OP:\r
-      //\r
-      // Pop an expression from the expression stack\r
-      //\r
-      Status = PopExpression (Value);\r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
+        Status = PopExpression (Value);\r
+        if (EFI_ERROR (Status)) {\r
+          goto Done;\r
+        }\r
 \r
-      //\r
-      // Convert an expression to a Boolean\r
-      //\r
-      if (Value->Type <= EFI_IFR_TYPE_DATE) {\r
         //\r
-        // When converting from an unsigned integer, zero will be converted to\r
-        // FALSE and any other value will be converted to TRUE.\r
+        // Validate the expression value\r
         //\r
-        Value->Value.b = (BOOLEAN) (HiiValueToUINT64(Value) != 0);\r
+        if ((Value->Type > EFI_IFR_TYPE_NUM_SIZE_64) || (Value->Value.u64 > 0xffff)) {\r
+          Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+          break;\r
+        }\r
+\r
+        Value->Type = EFI_IFR_TYPE_STRING;\r
+        StrPtr      = GetToken (Value->Value.u16, FormSet->HiiHandle);\r
+        if (StrPtr == NULL) {\r
+          //\r
+          // If String not exit, push an empty string\r
+          //\r
+          Value->Value.string = NewString (gEmptyString, FormSet->HiiHandle);\r
+        } else {\r
+          Index               = (UINT16)Value->Value.u64;\r
+          Value->Value.string = Index;\r
+          FreePool (StrPtr);\r
+        }\r
 \r
-        Value->Type = EFI_IFR_TYPE_BOOLEAN;\r
-      } else if (Value->Type == EFI_IFR_TYPE_STRING) {\r
+        break;\r
+\r
+      case EFI_IFR_TO_BOOLEAN_OP:\r
         //\r
-        // When converting from a string, if case-insensitive compare\r
-        // with "true" is True, then push True. If a case-insensitive compare\r
-        // with "false" is True, then push False. Otherwise, push Undefined.\r
+        // Pop an expression from the expression stack\r
         //\r
-        StrPtr = GetToken (Value->Value.string, FormSet->HiiHandle);\r
-        if (StrPtr == NULL) {\r
-          Status = EFI_INVALID_PARAMETER;\r
+        Status = PopExpression (Value);\r
+        if (EFI_ERROR (Status)) {\r
           goto Done;\r
         }\r
 \r
-        IfrStrToUpper (StrPtr);\r
-        if (StrCmp (StrPtr, L"TRUE") == 0){\r
-          Value->Value.b = TRUE;\r
-          Value->Type = EFI_IFR_TYPE_BOOLEAN;\r
-        } else if (StrCmp (StrPtr, L"FALSE") == 0) {\r
-          Value->Value.b = FALSE;\r
-          Value->Type = EFI_IFR_TYPE_BOOLEAN;\r
-        } else {\r
-          Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
-        }\r
-        FreePool (StrPtr);\r
-      } else if (Value->Type == EFI_IFR_TYPE_BUFFER) {\r
         //\r
-        // When converting from a buffer, if the buffer is all zeroes,\r
-        // then push False. Otherwise push True.\r
+        // Convert an expression to a Boolean\r
         //\r
-        for (Index =0; Index < Value->BufferLen; Index ++) {\r
-          if (Value->Buffer[Index] != 0) {\r
-            break;\r
+        if (Value->Type <= EFI_IFR_TYPE_DATE) {\r
+          //\r
+          // When converting from an unsigned integer, zero will be converted to\r
+          // FALSE and any other value will be converted to TRUE.\r
+          //\r
+          Value->Value.b = (BOOLEAN)(HiiValueToUINT64 (Value) != 0);\r
+\r
+          Value->Type = EFI_IFR_TYPE_BOOLEAN;\r
+        } else if (Value->Type == EFI_IFR_TYPE_STRING) {\r
+          //\r
+          // When converting from a string, if case-insensitive compare\r
+          // with "true" is True, then push True. If a case-insensitive compare\r
+          // with "false" is True, then push False. Otherwise, push Undefined.\r
+          //\r
+          StrPtr = GetToken (Value->Value.string, FormSet->HiiHandle);\r
+          if (StrPtr == NULL) {\r
+            Status = EFI_INVALID_PARAMETER;\r
+            goto Done;\r
           }\r
-        }\r
 \r
-        if (Index >= Value->BufferLen) {\r
-          Value->Value.b = FALSE;\r
-        } else {\r
-          Value->Value.b = TRUE;\r
-        }\r
-        Value->Type = EFI_IFR_TYPE_BOOLEAN;\r
-        FreePool (Value->Buffer);\r
-      }\r
-      break;\r
+          IfrStrToUpper (StrPtr);\r
+          if (StrCmp (StrPtr, L"TRUE") == 0) {\r
+            Value->Value.b = TRUE;\r
+            Value->Type    = EFI_IFR_TYPE_BOOLEAN;\r
+          } else if (StrCmp (StrPtr, L"FALSE") == 0) {\r
+            Value->Value.b = FALSE;\r
+            Value->Type    = EFI_IFR_TYPE_BOOLEAN;\r
+          } else {\r
+            Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+          }\r
 \r
-    case EFI_IFR_TO_STRING_OP:\r
-      Status = IfrToString (FormSet, OpCode->Format, Value);\r
-      break;\r
+          FreePool (StrPtr);\r
+        } else if (Value->Type == EFI_IFR_TYPE_BUFFER) {\r
+          //\r
+          // When converting from a buffer, if the buffer is all zeroes,\r
+          // then push False. Otherwise push True.\r
+          //\r
+          for (Index = 0; Index < Value->BufferLen; Index++) {\r
+            if (Value->Buffer[Index] != 0) {\r
+              break;\r
+            }\r
+          }\r
 \r
-    case EFI_IFR_TO_UINT_OP:\r
-      Status = IfrToUint (FormSet, Value);\r
-      break;\r
+          if (Index >= Value->BufferLen) {\r
+            Value->Value.b = FALSE;\r
+          } else {\r
+            Value->Value.b = TRUE;\r
+          }\r
 \r
-    case EFI_IFR_TO_LOWER_OP:\r
-    case EFI_IFR_TO_UPPER_OP:\r
-      Status = InitializeUnicodeCollationProtocol ();\r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
+          Value->Type = EFI_IFR_TYPE_BOOLEAN;\r
+          FreePool (Value->Buffer);\r
+        }\r
 \r
-      Status = PopExpression (Value);\r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
+        break;\r
 \r
-      if (Value->Type != EFI_IFR_TYPE_STRING) {\r
-        Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+      case EFI_IFR_TO_STRING_OP:\r
+        Status = IfrToString (FormSet, OpCode->Format, Value);\r
         break;\r
-      }\r
 \r
-      StrPtr = GetToken (Value->Value.string, FormSet->HiiHandle);\r
-      if (StrPtr == NULL) {\r
-        Status = EFI_NOT_FOUND;\r
-        goto Done;\r
-      }\r
+      case EFI_IFR_TO_UINT_OP:\r
+        Status = IfrToUint (FormSet, Value);\r
+        break;\r
 \r
-      if (OpCode->Operand == EFI_IFR_TO_LOWER_OP) {\r
-        mUnicodeCollation->StrLwr (mUnicodeCollation, StrPtr);\r
-      } else {\r
-        mUnicodeCollation->StrUpr (mUnicodeCollation, StrPtr);\r
-      }\r
-      Value->Value.string = NewString (StrPtr, FormSet->HiiHandle);\r
-      FreePool (StrPtr);\r
-      break;\r
+      case EFI_IFR_TO_LOWER_OP:\r
+      case EFI_IFR_TO_UPPER_OP:\r
+        Status = InitializeUnicodeCollationProtocol ();\r
+        if (EFI_ERROR (Status)) {\r
+          goto Done;\r
+        }\r
 \r
-    case EFI_IFR_BITWISE_NOT_OP:\r
-      //\r
-      // Pop an expression from the expression stack\r
-      //\r
-      Status = PopExpression (Value);\r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
-      if (Value->Type > EFI_IFR_TYPE_DATE) {\r
-        Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+        Status = PopExpression (Value);\r
+        if (EFI_ERROR (Status)) {\r
+          goto Done;\r
+        }\r
+\r
+        if (Value->Type != EFI_IFR_TYPE_STRING) {\r
+          Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+          break;\r
+        }\r
+\r
+        StrPtr = GetToken (Value->Value.string, FormSet->HiiHandle);\r
+        if (StrPtr == NULL) {\r
+          Status = EFI_NOT_FOUND;\r
+          goto Done;\r
+        }\r
+\r
+        if (OpCode->Operand == EFI_IFR_TO_LOWER_OP) {\r
+          mUnicodeCollation->StrLwr (mUnicodeCollation, StrPtr);\r
+        } else {\r
+          mUnicodeCollation->StrUpr (mUnicodeCollation, StrPtr);\r
+        }\r
+\r
+        Value->Value.string = NewString (StrPtr, FormSet->HiiHandle);\r
+        FreePool (StrPtr);\r
         break;\r
-      }\r
 \r
-      Value->Type = EFI_IFR_TYPE_NUM_SIZE_64;\r
-      Value->Value.u64 = ~ HiiValueToUINT64(Value);\r
-      break;\r
+      case EFI_IFR_BITWISE_NOT_OP:\r
+        //\r
+        // Pop an expression from the expression stack\r
+        //\r
+        Status = PopExpression (Value);\r
+        if (EFI_ERROR (Status)) {\r
+          goto Done;\r
+        }\r
 \r
-    case EFI_IFR_SET_OP:\r
-      //\r
-      // Pop an expression from the expression stack\r
-      //\r
-      Status = PopExpression (Value);\r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
-      Data1.Type = EFI_IFR_TYPE_BOOLEAN;\r
-      Data1.Value.b = FALSE;\r
-      //\r
-      // Set value to var storage buffer\r
-      //\r
-      if (OpCode->VarStorage != NULL) {\r
-        switch (OpCode->VarStorage->Type) {\r
-        case EFI_HII_VARSTORE_BUFFER:\r
-        case EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER:\r
-          CopyMem (OpCode->VarStorage->EditBuffer + OpCode->VarStoreInfo.VarOffset, &Value->Value, OpCode->ValueWidth);\r
-          Data1.Value.b = TRUE;\r
-          break;\r
-        case EFI_HII_VARSTORE_NAME_VALUE:\r
-          if (OpCode->ValueType != EFI_IFR_TYPE_STRING) {\r
-            NameValue = AllocateZeroPool ((OpCode->ValueWidth * 2 + 1) * sizeof (CHAR16));\r
-            ASSERT (NameValue != NULL);\r
-            //\r
-            // Convert Buffer to Hex String\r
-            //\r
-            TempBuffer = (UINT8 *) &Value->Value + OpCode->ValueWidth - 1;\r
-            StrPtr = NameValue;\r
-            for (Index = 0; Index < OpCode->ValueWidth; Index ++, TempBuffer --) {\r
-              UnicodeValueToStringS (\r
-                StrPtr,\r
-                (OpCode->ValueWidth * 2 + 1) * sizeof (CHAR16) - ((UINTN)StrPtr - (UINTN)NameValue),\r
-                PREFIX_ZERO | RADIX_HEX,\r
-                *TempBuffer,\r
-                2\r
-                );\r
-              StrPtr += StrnLenS (StrPtr, OpCode->ValueWidth * 2 + 1 - ((UINTN)StrPtr - (UINTN)NameValue) / sizeof (CHAR16));\r
-            }\r
-            Status = SetValueByName (OpCode->VarStorage, OpCode->ValueName, NameValue, GetSetValueWithEditBuffer, NULL);\r
-            FreePool (NameValue);\r
-            if (!EFI_ERROR (Status)) {\r
-              Data1.Value.b = TRUE;\r
-            }\r
-          }\r
-          break;\r
-        case EFI_HII_VARSTORE_EFI_VARIABLE:\r
-          Status = gRT->SetVariable (\r
-                          OpCode->ValueName,\r
-                          &OpCode->VarStorage->Guid,\r
-                          OpCode->VarStorage->Attributes,\r
-                          OpCode->ValueWidth,\r
-                          &Value->Value\r
-                          );\r
-          if (!EFI_ERROR (Status)) {\r
-            Data1.Value.b = TRUE;\r
-          }\r
+        if (Value->Type > EFI_IFR_TYPE_DATE) {\r
+          Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
           break;\r
-        default:\r
-          //\r
-          // Not recognize storage.\r
-          //\r
-          Status = EFI_UNSUPPORTED;\r
-          goto Done;\r
         }\r
-      } else {\r
+\r
+        Value->Type      = EFI_IFR_TYPE_NUM_SIZE_64;\r
+        Value->Value.u64 = ~HiiValueToUINT64(Value);\r
+        break;\r
+\r
+      case EFI_IFR_SET_OP:\r
         //\r
-        // For Time/Date Data\r
+        // Pop an expression from the expression stack\r
         //\r
-        if (OpCode->ValueType != EFI_IFR_TYPE_DATE && OpCode->ValueType != EFI_IFR_TYPE_TIME) {\r
-          //\r
-          // Only support Data/Time data when storage doesn't exist.\r
-          //\r
-          Status = EFI_UNSUPPORTED;\r
+        Status = PopExpression (Value);\r
+        if (EFI_ERROR (Status)) {\r
           goto Done;\r
         }\r
-        Status = gRT->GetTime (&EfiTime, NULL);\r
-        if (!EFI_ERROR (Status)) {\r
-          if (OpCode->ValueType == EFI_IFR_TYPE_DATE) {\r
-            switch (OpCode->VarStoreInfo.VarOffset) {\r
-            case 0x00:\r
-              EfiTime.Year = Value->Value.u16;\r
-              break;\r
-            case 0x02:\r
-              EfiTime.Month = Value->Value.u8;\r
-              break;\r
-            case 0x03:\r
-              EfiTime.Day = Value->Value.u8;\r
-              break;\r
-            default:\r
-              //\r
-              // Invalid Date field.\r
-              //\r
-              Status = EFI_INVALID_PARAMETER;\r
-              goto Done;\r
-            }\r
-          } else {\r
-            switch (OpCode->VarStoreInfo.VarOffset) {\r
-            case 0x00:\r
-              EfiTime.Hour = Value->Value.u8;\r
+\r
+        Data1.Type    = EFI_IFR_TYPE_BOOLEAN;\r
+        Data1.Value.b = FALSE;\r
+        //\r
+        // Set value to var storage buffer\r
+        //\r
+        if (OpCode->VarStorage != NULL) {\r
+          switch (OpCode->VarStorage->Type) {\r
+            case EFI_HII_VARSTORE_BUFFER:\r
+            case EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER:\r
+              CopyMem (OpCode->VarStorage->EditBuffer + OpCode->VarStoreInfo.VarOffset, &Value->Value, OpCode->ValueWidth);\r
+              Data1.Value.b = TRUE;\r
               break;\r
-            case 0x01:\r
-              EfiTime.Minute = Value->Value.u8;\r
+            case EFI_HII_VARSTORE_NAME_VALUE:\r
+              if (OpCode->ValueType != EFI_IFR_TYPE_STRING) {\r
+                NameValue = AllocateZeroPool ((OpCode->ValueWidth * 2 + 1) * sizeof (CHAR16));\r
+                ASSERT (NameValue != NULL);\r
+                //\r
+                // Convert Buffer to Hex String\r
+                //\r
+                TempBuffer = (UINT8 *)&Value->Value + OpCode->ValueWidth - 1;\r
+                StrPtr     = NameValue;\r
+                for (Index = 0; Index < OpCode->ValueWidth; Index++, TempBuffer--) {\r
+                  UnicodeValueToStringS (\r
+                    StrPtr,\r
+                    (OpCode->ValueWidth * 2 + 1) * sizeof (CHAR16) - ((UINTN)StrPtr - (UINTN)NameValue),\r
+                    PREFIX_ZERO | RADIX_HEX,\r
+                    *TempBuffer,\r
+                    2\r
+                    );\r
+                  StrPtr += StrnLenS (StrPtr, OpCode->ValueWidth * 2 + 1 - ((UINTN)StrPtr - (UINTN)NameValue) / sizeof (CHAR16));\r
+                }\r
+\r
+                Status = SetValueByName (OpCode->VarStorage, OpCode->ValueName, NameValue, GetSetValueWithEditBuffer, NULL);\r
+                FreePool (NameValue);\r
+                if (!EFI_ERROR (Status)) {\r
+                  Data1.Value.b = TRUE;\r
+                }\r
+              }\r
+\r
               break;\r
-            case 0x02:\r
-              EfiTime.Second = Value->Value.u8;\r
+            case EFI_HII_VARSTORE_EFI_VARIABLE:\r
+              Status = gRT->SetVariable (\r
+                              OpCode->ValueName,\r
+                              &OpCode->VarStorage->Guid,\r
+                              OpCode->VarStorage->Attributes,\r
+                              OpCode->ValueWidth,\r
+                              &Value->Value\r
+                              );\r
+              if (!EFI_ERROR (Status)) {\r
+                Data1.Value.b = TRUE;\r
+              }\r
+\r
               break;\r
             default:\r
               //\r
-              // Invalid Time field.\r
+              // Not recognize storage.\r
               //\r
-              Status = EFI_INVALID_PARAMETER;\r
+              Status = EFI_UNSUPPORTED;\r
               goto Done;\r
-            }\r
           }\r
-          Status = gRT->SetTime (&EfiTime);\r
+        } else {\r
+          //\r
+          // For Time/Date Data\r
+          //\r
+          if ((OpCode->ValueType != EFI_IFR_TYPE_DATE) && (OpCode->ValueType != EFI_IFR_TYPE_TIME)) {\r
+            //\r
+            // Only support Data/Time data when storage doesn't exist.\r
+            //\r
+            Status = EFI_UNSUPPORTED;\r
+            goto Done;\r
+          }\r
+\r
+          Status = gRT->GetTime (&EfiTime, NULL);\r
           if (!EFI_ERROR (Status)) {\r
-            Data1.Value.b = TRUE;\r
+            if (OpCode->ValueType == EFI_IFR_TYPE_DATE) {\r
+              switch (OpCode->VarStoreInfo.VarOffset) {\r
+                case 0x00:\r
+                  EfiTime.Year = Value->Value.u16;\r
+                  break;\r
+                case 0x02:\r
+                  EfiTime.Month = Value->Value.u8;\r
+                  break;\r
+                case 0x03:\r
+                  EfiTime.Day = Value->Value.u8;\r
+                  break;\r
+                default:\r
+                  //\r
+                  // Invalid Date field.\r
+                  //\r
+                  Status = EFI_INVALID_PARAMETER;\r
+                  goto Done;\r
+              }\r
+            } else {\r
+              switch (OpCode->VarStoreInfo.VarOffset) {\r
+                case 0x00:\r
+                  EfiTime.Hour = Value->Value.u8;\r
+                  break;\r
+                case 0x01:\r
+                  EfiTime.Minute = Value->Value.u8;\r
+                  break;\r
+                case 0x02:\r
+                  EfiTime.Second = Value->Value.u8;\r
+                  break;\r
+                default:\r
+                  //\r
+                  // Invalid Time field.\r
+                  //\r
+                  Status = EFI_INVALID_PARAMETER;\r
+                  goto Done;\r
+              }\r
+            }\r
+\r
+            Status = gRT->SetTime (&EfiTime);\r
+            if (!EFI_ERROR (Status)) {\r
+              Data1.Value.b = TRUE;\r
+            }\r
           }\r
         }\r
-      }\r
-      Value = &Data1;\r
-      break;\r
 \r
-    //\r
-    // binary-op\r
-    //\r
-    case EFI_IFR_ADD_OP:\r
-    case EFI_IFR_SUBTRACT_OP:\r
-    case EFI_IFR_MULTIPLY_OP:\r
-    case EFI_IFR_DIVIDE_OP:\r
-    case EFI_IFR_MODULO_OP:\r
-    case EFI_IFR_BITWISE_AND_OP:\r
-    case EFI_IFR_BITWISE_OR_OP:\r
-    case EFI_IFR_SHIFT_LEFT_OP:\r
-    case EFI_IFR_SHIFT_RIGHT_OP:\r
-      //\r
-      // Pop an expression from the expression stack\r
-      //\r
-      Status = PopExpression (&Data2);\r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
+        Value = &Data1;\r
+        break;\r
 \r
       //\r
-      // Pop another expression from the expression stack\r
+      // binary-op\r
       //\r
-      Status = PopExpression (&Data1);\r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
+      case EFI_IFR_ADD_OP:\r
+      case EFI_IFR_SUBTRACT_OP:\r
+      case EFI_IFR_MULTIPLY_OP:\r
+      case EFI_IFR_DIVIDE_OP:\r
+      case EFI_IFR_MODULO_OP:\r
+      case EFI_IFR_BITWISE_AND_OP:\r
+      case EFI_IFR_BITWISE_OR_OP:\r
+      case EFI_IFR_SHIFT_LEFT_OP:\r
+      case EFI_IFR_SHIFT_RIGHT_OP:\r
+        //\r
+        // Pop an expression from the expression stack\r
+        //\r
+        Status = PopExpression (&Data2);\r
+        if (EFI_ERROR (Status)) {\r
+          goto Done;\r
+        }\r
 \r
-      if (Data2.Type > EFI_IFR_TYPE_DATE) {\r
-        Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
-        break;\r
-      }\r
+        //\r
+        // Pop another expression from the expression stack\r
+        //\r
+        Status = PopExpression (&Data1);\r
+        if (EFI_ERROR (Status)) {\r
+          goto Done;\r
+        }\r
+\r
+        if (Data2.Type > EFI_IFR_TYPE_DATE) {\r
+          Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+          break;\r
+        }\r
+\r
+        if (Data1.Type > EFI_IFR_TYPE_DATE) {\r
+          Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+          break;\r
+        }\r
+\r
+        Value->Type = EFI_IFR_TYPE_NUM_SIZE_64;\r
+\r
+        switch (OpCode->Operand) {\r
+          case EFI_IFR_ADD_OP:\r
+            Value->Value.u64 = HiiValueToUINT64 (&Data1) + HiiValueToUINT64 (&Data2);\r
+            break;\r
+\r
+          case EFI_IFR_SUBTRACT_OP:\r
+            Value->Value.u64 = HiiValueToUINT64 (&Data1) - HiiValueToUINT64 (&Data2);\r
+            break;\r
+\r
+          case EFI_IFR_MULTIPLY_OP:\r
+            Value->Value.u64 = MultU64x32 (HiiValueToUINT64 (&Data1), (UINT32)HiiValueToUINT64 (&Data2));\r
+            break;\r
+\r
+          case EFI_IFR_DIVIDE_OP:\r
+            Value->Value.u64 = DivU64x32 (HiiValueToUINT64 (&Data1), (UINT32)HiiValueToUINT64 (&Data2));\r
+            break;\r
+\r
+          case EFI_IFR_MODULO_OP:\r
+            DivU64x32Remainder (HiiValueToUINT64 (&Data1), (UINT32)HiiValueToUINT64 (&Data2), &TempValue);\r
+            Value->Value.u64 = TempValue;\r
+            break;\r
 \r
+          case EFI_IFR_BITWISE_AND_OP:\r
+            Value->Value.u64 = HiiValueToUINT64 (&Data1) & HiiValueToUINT64 (&Data2);\r
+            break;\r
 \r
-      if (Data1.Type > EFI_IFR_TYPE_DATE) {\r
-        Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
-        break;\r
-      }\r
+          case EFI_IFR_BITWISE_OR_OP:\r
+            Value->Value.u64 = HiiValueToUINT64 (&Data1) | HiiValueToUINT64 (&Data2);\r
+            break;\r
 \r
-      Value->Type = EFI_IFR_TYPE_NUM_SIZE_64;\r
+          case EFI_IFR_SHIFT_LEFT_OP:\r
+            Value->Value.u64 = LShiftU64 (HiiValueToUINT64 (&Data1), (UINTN)HiiValueToUINT64 (&Data2));\r
+            break;\r
 \r
-      switch (OpCode->Operand) {\r
-        case EFI_IFR_ADD_OP:\r
-          Value->Value.u64 = HiiValueToUINT64(&Data1) + HiiValueToUINT64(&Data2);\r
-          break;\r
+          case EFI_IFR_SHIFT_RIGHT_OP:\r
+            Value->Value.u64 = RShiftU64 (HiiValueToUINT64 (&Data1), (UINTN)HiiValueToUINT64 (&Data2));\r
+            break;\r
 \r
-        case EFI_IFR_SUBTRACT_OP:\r
-          Value->Value.u64 = HiiValueToUINT64(&Data1) - HiiValueToUINT64(&Data2);\r
-          break;\r
+          default:\r
+            break;\r
+        }\r
 \r
-        case EFI_IFR_MULTIPLY_OP:\r
-          Value->Value.u64 = MultU64x32 (HiiValueToUINT64(&Data1), (UINT32) HiiValueToUINT64(&Data2));\r
-          break;\r
+        break;\r
 \r
-        case EFI_IFR_DIVIDE_OP:\r
-          Value->Value.u64 = DivU64x32 (HiiValueToUINT64(&Data1), (UINT32) HiiValueToUINT64(&Data2));\r
-          break;\r
+      case EFI_IFR_AND_OP:\r
+      case EFI_IFR_OR_OP:\r
+        //\r
+        // Two Boolean operator\r
+        //\r
+        Status = PopExpression (&Data2);\r
+        if (EFI_ERROR (Status)) {\r
+          goto Done;\r
+        }\r
 \r
-        case EFI_IFR_MODULO_OP:\r
-          DivU64x32Remainder  (HiiValueToUINT64(&Data1), (UINT32) HiiValueToUINT64(&Data2), &TempValue);\r
-          Value->Value.u64 = TempValue;\r
-          break;\r
+        //\r
+        // Pop another expression from the expression stack\r
+        //\r
+        Status = PopExpression (&Data1);\r
+        if (EFI_ERROR (Status)) {\r
+          goto Done;\r
+        }\r
 \r
-        case EFI_IFR_BITWISE_AND_OP:\r
-          Value->Value.u64 = HiiValueToUINT64(&Data1) & HiiValueToUINT64(&Data2);\r
+        if (Data2.Type != EFI_IFR_TYPE_BOOLEAN) {\r
+          Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
           break;\r
+        }\r
 \r
-        case EFI_IFR_BITWISE_OR_OP:\r
-          Value->Value.u64 = HiiValueToUINT64(&Data1) | HiiValueToUINT64(&Data2);\r
+        if (Data1.Type != EFI_IFR_TYPE_BOOLEAN) {\r
+          Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
           break;\r
+        }\r
 \r
-        case EFI_IFR_SHIFT_LEFT_OP:\r
-          Value->Value.u64 = LShiftU64 (HiiValueToUINT64(&Data1), (UINTN) HiiValueToUINT64(&Data2));\r
-          break;\r
+        if (OpCode->Operand == EFI_IFR_AND_OP) {\r
+          Value->Value.b = (BOOLEAN)(Data1.Value.b && Data2.Value.b);\r
+        } else {\r
+          Value->Value.b = (BOOLEAN)(Data1.Value.b || Data2.Value.b);\r
+        }\r
 \r
-        case EFI_IFR_SHIFT_RIGHT_OP:\r
-          Value->Value.u64 = RShiftU64 (HiiValueToUINT64(&Data1), (UINTN) HiiValueToUINT64(&Data2));\r
-          break;\r
+        break;\r
 \r
-        default:\r
-          break;\r
-      }\r
-      break;\r
+      case EFI_IFR_EQUAL_OP:\r
+      case EFI_IFR_NOT_EQUAL_OP:\r
+      case EFI_IFR_GREATER_EQUAL_OP:\r
+      case EFI_IFR_GREATER_THAN_OP:\r
+      case EFI_IFR_LESS_EQUAL_OP:\r
+      case EFI_IFR_LESS_THAN_OP:\r
+        //\r
+        // Compare two integer, string, boolean or date/time\r
+        //\r
+        Status = PopExpression (&Data2);\r
+        if (EFI_ERROR (Status)) {\r
+          goto Done;\r
+        }\r
 \r
-    case EFI_IFR_AND_OP:\r
-    case EFI_IFR_OR_OP:\r
-      //\r
-      // Two Boolean operator\r
-      //\r
-      Status = PopExpression (&Data2);\r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
+        //\r
+        // Pop another expression from the expression stack\r
+        //\r
+        Status = PopExpression (&Data1);\r
+        if (EFI_ERROR (Status)) {\r
+          goto Done;\r
+        }\r
 \r
-      //\r
-      // Pop another expression from the expression stack\r
-      //\r
-      Status = PopExpression (&Data1);\r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
+        if ((Data2.Type > EFI_IFR_TYPE_BOOLEAN) &&\r
+            (Data2.Type != EFI_IFR_TYPE_STRING) &&\r
+            !IsTypeInBuffer (&Data2))\r
+        {\r
+          Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+          break;\r
+        }\r
 \r
-      if (Data2.Type != EFI_IFR_TYPE_BOOLEAN) {\r
-        Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
-        break;\r
-      }\r
+        if ((Data1.Type > EFI_IFR_TYPE_BOOLEAN) &&\r
+            (Data1.Type != EFI_IFR_TYPE_STRING) &&\r
+            !IsTypeInBuffer (&Data1))\r
+        {\r
+          Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+          break;\r
+        }\r
 \r
-      if (Data1.Type != EFI_IFR_TYPE_BOOLEAN) {\r
-        Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
-        break;\r
-      }\r
+        Status = CompareHiiValue (&Data1, &Data2, &Result, FormSet->HiiHandle);\r
+        if (Data1.Type == EFI_IFR_TYPE_BUFFER) {\r
+          FreePool (Data1.Buffer);\r
+        }\r
 \r
-      if (OpCode->Operand == EFI_IFR_AND_OP) {\r
-        Value->Value.b = (BOOLEAN) (Data1.Value.b && Data2.Value.b);\r
-      } else {\r
-        Value->Value.b = (BOOLEAN) (Data1.Value.b || Data2.Value.b);\r
-      }\r
-      break;\r
+        if (Data2.Type == EFI_IFR_TYPE_BUFFER) {\r
+          FreePool (Data2.Buffer);\r
+        }\r
 \r
-    case EFI_IFR_EQUAL_OP:\r
-    case EFI_IFR_NOT_EQUAL_OP:\r
-    case EFI_IFR_GREATER_EQUAL_OP:\r
-    case EFI_IFR_GREATER_THAN_OP:\r
-    case EFI_IFR_LESS_EQUAL_OP:\r
-    case EFI_IFR_LESS_THAN_OP:\r
-      //\r
-      // Compare two integer, string, boolean or date/time\r
-      //\r
-      Status = PopExpression (&Data2);\r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
+        if (Status == EFI_UNSUPPORTED) {\r
+          Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+          Status      = EFI_SUCCESS;\r
+          break;\r
+        }\r
 \r
-      //\r
-      // Pop another expression from the expression stack\r
-      //\r
-      Status = PopExpression (&Data1);\r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
+        if (EFI_ERROR (Status)) {\r
+          goto Done;\r
+        }\r
 \r
-      if (Data2.Type > EFI_IFR_TYPE_BOOLEAN &&\r
-          Data2.Type != EFI_IFR_TYPE_STRING &&\r
-          !IsTypeInBuffer(&Data2)) {\r
-        Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
-        break;\r
-      }\r
+        switch (OpCode->Operand) {\r
+          case EFI_IFR_EQUAL_OP:\r
+            Value->Value.b = (BOOLEAN)((Result == 0) ? TRUE : FALSE);\r
+            break;\r
 \r
-      if (Data1.Type > EFI_IFR_TYPE_BOOLEAN &&\r
-          Data1.Type != EFI_IFR_TYPE_STRING &&\r
-          !IsTypeInBuffer(&Data1)) {\r
-        Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
-        break;\r
-      }\r
+          case EFI_IFR_NOT_EQUAL_OP:\r
+            Value->Value.b = (BOOLEAN)((Result != 0) ? TRUE : FALSE);\r
+            break;\r
 \r
-      Status = CompareHiiValue (&Data1, &Data2, &Result, FormSet->HiiHandle);\r
-      if (Data1.Type == EFI_IFR_TYPE_BUFFER) {\r
-        FreePool (Data1.Buffer);\r
-      }\r
-      if (Data2.Type == EFI_IFR_TYPE_BUFFER) {\r
-        FreePool (Data2.Buffer);\r
-      }\r
+          case EFI_IFR_GREATER_EQUAL_OP:\r
+            Value->Value.b = (BOOLEAN)((Result >= 0) ? TRUE : FALSE);\r
+            break;\r
 \r
-      if (Status == EFI_UNSUPPORTED) {\r
-        Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
-        Status = EFI_SUCCESS;\r
-        break;\r
-      }\r
+          case EFI_IFR_GREATER_THAN_OP:\r
+            Value->Value.b = (BOOLEAN)((Result > 0) ? TRUE : FALSE);\r
+            break;\r
 \r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
+          case EFI_IFR_LESS_EQUAL_OP:\r
+            Value->Value.b = (BOOLEAN)((Result <= 0) ? TRUE : FALSE);\r
+            break;\r
 \r
-      switch (OpCode->Operand) {\r
-      case EFI_IFR_EQUAL_OP:\r
-        Value->Value.b = (BOOLEAN) ((Result == 0) ? TRUE : FALSE);\r
-        break;\r
+          case EFI_IFR_LESS_THAN_OP:\r
+            Value->Value.b = (BOOLEAN)((Result < 0) ? TRUE : FALSE);\r
+            break;\r
 \r
-      case EFI_IFR_NOT_EQUAL_OP:\r
-        Value->Value.b = (BOOLEAN) ((Result != 0) ? TRUE : FALSE);\r
-        break;\r
+          default:\r
+            break;\r
+        }\r
 \r
-      case EFI_IFR_GREATER_EQUAL_OP:\r
-        Value->Value.b = (BOOLEAN) ((Result >= 0) ? TRUE : FALSE);\r
         break;\r
 \r
-      case EFI_IFR_GREATER_THAN_OP:\r
-        Value->Value.b = (BOOLEAN) ((Result > 0) ? TRUE : FALSE);\r
-        break;\r
+      case EFI_IFR_MATCH_OP:\r
+        Status = InitializeUnicodeCollationProtocol ();\r
+        if (EFI_ERROR (Status)) {\r
+          goto Done;\r
+        }\r
 \r
-      case EFI_IFR_LESS_EQUAL_OP:\r
-        Value->Value.b = (BOOLEAN) ((Result <= 0) ? TRUE : FALSE);\r
+        Status = IfrMatch (FormSet, Value);\r
         break;\r
 \r
-      case EFI_IFR_LESS_THAN_OP:\r
-        Value->Value.b = (BOOLEAN) ((Result < 0) ? TRUE : FALSE);\r
+      case EFI_IFR_MATCH2_OP:\r
+        Status = IfrMatch2 (FormSet, &OpCode->Guid, Value);\r
         break;\r
 \r
-      default:\r
+      case EFI_IFR_CATENATE_OP:\r
+        Status = IfrCatenate (FormSet, Value);\r
         break;\r
-      }\r
-      break;\r
 \r
-    case EFI_IFR_MATCH_OP:\r
-      Status = InitializeUnicodeCollationProtocol ();\r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
-\r
-      Status = IfrMatch (FormSet, Value);\r
-      break;\r
+      //\r
+      // ternary-op\r
+      //\r
+      case EFI_IFR_CONDITIONAL_OP:\r
+        //\r
+        // Pop third expression from the expression stack\r
+        //\r
+        Status = PopExpression (&Data3);\r
+        if (EFI_ERROR (Status)) {\r
+          goto Done;\r
+        }\r
 \r
-    case EFI_IFR_MATCH2_OP:\r
-      Status = IfrMatch2 (FormSet, &OpCode->Guid, Value);\r
-      break;\r
+        //\r
+        // Pop second expression from the expression stack\r
+        //\r
+        Status = PopExpression (&Data2);\r
+        if (EFI_ERROR (Status)) {\r
+          goto Done;\r
+        }\r
 \r
-    case EFI_IFR_CATENATE_OP:\r
-      Status = IfrCatenate (FormSet, Value);\r
-      break;\r
+        //\r
+        // Pop first expression from the expression stack\r
+        //\r
+        Status = PopExpression (&Data1);\r
+        if (EFI_ERROR (Status)) {\r
+          goto Done;\r
+        }\r
 \r
-    //\r
-    // ternary-op\r
-    //\r
-    case EFI_IFR_CONDITIONAL_OP:\r
-      //\r
-      // Pop third expression from the expression stack\r
-      //\r
-      Status = PopExpression (&Data3);\r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
+        if (Data1.Type != EFI_IFR_TYPE_BOOLEAN) {\r
+          Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+          break;\r
+        }\r
 \r
-      //\r
-      // Pop second expression from the expression stack\r
-      //\r
-      Status = PopExpression (&Data2);\r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
+        if (Data1.Value.b) {\r
+          Value = &Data3;\r
+        } else {\r
+          Value = &Data2;\r
+        }\r
 \r
-      //\r
-      // Pop first expression from the expression stack\r
-      //\r
-      Status = PopExpression (&Data1);\r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
-      if (Data1.Type != EFI_IFR_TYPE_BOOLEAN) {\r
-        Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
         break;\r
-      }\r
-\r
-      if (Data1.Value.b) {\r
-        Value = &Data3;\r
-      } else {\r
-        Value = &Data2;\r
-      }\r
-      break;\r
 \r
-    case EFI_IFR_FIND_OP:\r
-      Status = IfrFind (FormSet, OpCode->Format, Value);\r
-      break;\r
+      case EFI_IFR_FIND_OP:\r
+        Status = IfrFind (FormSet, OpCode->Format, Value);\r
+        break;\r
 \r
-    case EFI_IFR_MID_OP:\r
-      Status = IfrMid (FormSet, Value);\r
-      break;\r
+      case EFI_IFR_MID_OP:\r
+        Status = IfrMid (FormSet, Value);\r
+        break;\r
 \r
-    case EFI_IFR_TOKEN_OP:\r
-      Status = IfrToken (FormSet, Value);\r
-      break;\r
+      case EFI_IFR_TOKEN_OP:\r
+        Status = IfrToken (FormSet, Value);\r
+        break;\r
 \r
-    case EFI_IFR_SPAN_OP:\r
-      Status = IfrSpan (FormSet, OpCode->Flags, Value);\r
-      break;\r
+      case EFI_IFR_SPAN_OP:\r
+        Status = IfrSpan (FormSet, OpCode->Flags, Value);\r
+        break;\r
 \r
-    case EFI_IFR_MAP_OP:\r
-      //\r
-      // Pop the check value\r
-      //\r
-      Status = PopExpression (&Data1);\r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
-      //\r
-      // Check MapExpression list is valid.\r
-      //\r
-      if (OpCode->MapExpressionList.ForwardLink == NULL) {\r
-        Status = EFI_INVALID_PARAMETER;\r
-        goto Done;\r
-      }\r
-      //\r
-      // Go through map expression list.\r
-      //\r
-      SubExpressionLink = GetFirstNode(&OpCode->MapExpressionList);\r
-      while (!IsNull (&OpCode->MapExpressionList, SubExpressionLink)) {\r
-        SubExpression = FORM_EXPRESSION_FROM_LINK (SubExpressionLink);\r
+      case EFI_IFR_MAP_OP:\r
         //\r
-        // Evaluate the first expression in this pair.\r
+        // Pop the check value\r
         //\r
-        Status = EvaluateExpression (FormSet, Form, SubExpression);\r
+        Status = PopExpression (&Data1);\r
         if (EFI_ERROR (Status)) {\r
           goto Done;\r
         }\r
+\r
+        //\r
+        // Check MapExpression list is valid.\r
+        //\r
+        if (OpCode->MapExpressionList.ForwardLink == NULL) {\r
+          Status = EFI_INVALID_PARAMETER;\r
+          goto Done;\r
+        }\r
+\r
         //\r
-        // Compare the expression value with current value\r
+        // Go through map expression list.\r
         //\r
-        if ((CompareHiiValue (&Data1, &SubExpression->Result, &Result, NULL) == EFI_SUCCESS) && (Result == 0)) {\r
+        SubExpressionLink = GetFirstNode (&OpCode->MapExpressionList);\r
+        while (!IsNull (&OpCode->MapExpressionList, SubExpressionLink)) {\r
+          SubExpression = FORM_EXPRESSION_FROM_LINK (SubExpressionLink);\r
+          //\r
+          // Evaluate the first expression in this pair.\r
+          //\r
+          Status = EvaluateExpression (FormSet, Form, SubExpression);\r
+          if (EFI_ERROR (Status)) {\r
+            goto Done;\r
+          }\r
+\r
+          //\r
+          // Compare the expression value with current value\r
+          //\r
+          if ((CompareHiiValue (&Data1, &SubExpression->Result, &Result, NULL) == EFI_SUCCESS) && (Result == 0)) {\r
+            //\r
+            // Try get the map value.\r
+            //\r
+            SubExpressionLink = GetNextNode (&OpCode->MapExpressionList, SubExpressionLink);\r
+            if (IsNull (&OpCode->MapExpressionList, SubExpressionLink)) {\r
+              Status = EFI_INVALID_PARAMETER;\r
+              goto Done;\r
+            }\r
+\r
+            SubExpression = FORM_EXPRESSION_FROM_LINK (SubExpressionLink);\r
+            Status        = EvaluateExpression (FormSet, Form, SubExpression);\r
+            if (EFI_ERROR (Status)) {\r
+              goto Done;\r
+            }\r
+\r
+            Value = &SubExpression->Result;\r
+            break;\r
+          }\r
+\r
           //\r
-          // Try get the map value.\r
+          // Skip the second expression on this pair.\r
           //\r
           SubExpressionLink = GetNextNode (&OpCode->MapExpressionList, SubExpressionLink);\r
           if (IsNull (&OpCode->MapExpressionList, SubExpressionLink)) {\r
             Status = EFI_INVALID_PARAMETER;\r
             goto Done;\r
           }\r
-          SubExpression = FORM_EXPRESSION_FROM_LINK (SubExpressionLink);\r
-          Status = EvaluateExpression (FormSet, Form, SubExpression);\r
-          if (EFI_ERROR (Status)) {\r
-            goto Done;\r
-          }\r
-          Value = &SubExpression->Result;\r
-          break;\r
+\r
+          //\r
+          // Goto the first expression on next pair.\r
+          //\r
+          SubExpressionLink = GetNextNode (&OpCode->MapExpressionList, SubExpressionLink);\r
         }\r
+\r
         //\r
-        // Skip the second expression on this pair.\r
+        // No map value is found.\r
         //\r
-        SubExpressionLink = GetNextNode (&OpCode->MapExpressionList, SubExpressionLink);\r
         if (IsNull (&OpCode->MapExpressionList, SubExpressionLink)) {\r
-          Status = EFI_INVALID_PARAMETER;\r
-          goto Done;\r
+          Value->Type     = EFI_IFR_TYPE_UNDEFINED;\r
+          Value->Value.u8 = 0;\r
         }\r
-        //\r
-        // Goto the first expression on next pair.\r
-        //\r
-        SubExpressionLink = GetNextNode (&OpCode->MapExpressionList, SubExpressionLink);\r
-      }\r
 \r
-      //\r
-      // No map value is found.\r
-      //\r
-      if (IsNull (&OpCode->MapExpressionList, SubExpressionLink)) {\r
-        Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
-        Value->Value.u8 = 0;\r
-      }\r
-      break;\r
+        break;\r
 \r
-    default:\r
-      break;\r
+      default:\r
+        break;\r
     }\r
-    if (EFI_ERROR (Status) || Value->Type == EFI_IFR_TYPE_UNDEFINED) {\r
+\r
+    if (EFI_ERROR (Status) || (Value->Type == EFI_IFR_TYPE_UNDEFINED)) {\r
       goto Done;\r
     }\r
 \r
@@ -3597,7 +3654,7 @@ EvaluateExpression (
   //\r
   // Pop the final result from expression stack\r
   //\r
-  Value = &Data1;\r
+  Value  = &Data1;\r
   Status = PopExpression (Value);\r
   if (EFI_ERROR (Status)) {\r
     goto Done;\r
@@ -3633,27 +3690,27 @@ Done:
 **/\r
 BOOLEAN\r
 IsTrue (\r
-  IN EFI_HII_VALUE     *Result\r
+  IN EFI_HII_VALUE  *Result\r
   )\r
 {\r
   switch (Result->Type) {\r
-  case EFI_IFR_TYPE_BOOLEAN:\r
-    return Result->Value.b;\r
+    case EFI_IFR_TYPE_BOOLEAN:\r
+      return Result->Value.b;\r
 \r
-  case EFI_IFR_TYPE_NUM_SIZE_8:\r
-    return (BOOLEAN)(Result->Value.u8 != 0);\r
+    case EFI_IFR_TYPE_NUM_SIZE_8:\r
+      return (BOOLEAN)(Result->Value.u8 != 0);\r
 \r
-  case EFI_IFR_TYPE_NUM_SIZE_16:\r
-    return (BOOLEAN)(Result->Value.u16 != 0);\r
+    case EFI_IFR_TYPE_NUM_SIZE_16:\r
+      return (BOOLEAN)(Result->Value.u16 != 0);\r
 \r
-  case EFI_IFR_TYPE_NUM_SIZE_32:\r
-    return (BOOLEAN)(Result->Value.u32 != 0);\r
+    case EFI_IFR_TYPE_NUM_SIZE_32:\r
+      return (BOOLEAN)(Result->Value.u32 != 0);\r
 \r
-  case EFI_IFR_TYPE_NUM_SIZE_64:\r
-    return (BOOLEAN)(Result->Value.u64 != 0);\r
+    case EFI_IFR_TYPE_NUM_SIZE_64:\r
+      return (BOOLEAN)(Result->Value.u64 != 0);\r
 \r
-  default:\r
-    return FALSE;\r
+    default:\r
+      return FALSE;\r
   }\r
 }\r
 \r
@@ -3673,23 +3730,23 @@ IsTrue (
 **/\r
 EXPRESS_RESULT\r
 EvaluateExpressionList (\r
-  IN FORM_EXPRESSION_LIST *ExpList,\r
-  IN BOOLEAN              Evaluate,\r
-  IN FORM_BROWSER_FORMSET *FormSet  OPTIONAL,\r
-  IN FORM_BROWSER_FORM    *Form OPTIONAL\r
+  IN FORM_EXPRESSION_LIST  *ExpList,\r
+  IN BOOLEAN               Evaluate,\r
+  IN FORM_BROWSER_FORMSET  *FormSet  OPTIONAL,\r
+  IN FORM_BROWSER_FORM     *Form OPTIONAL\r
   )\r
 {\r
-  UINTN              Index;\r
-  EXPRESS_RESULT     ReturnVal;\r
-  EXPRESS_RESULT     CompareOne;\r
-  EFI_STATUS         Status;\r
+  UINTN           Index;\r
+  EXPRESS_RESULT  ReturnVal;\r
+  EXPRESS_RESULT  CompareOne;\r
+  EFI_STATUS      Status;\r
 \r
   if (ExpList == NULL) {\r
     return ExpressFalse;\r
   }\r
 \r
-  ASSERT(ExpList->Signature == FORM_EXPRESSION_LIST_SIGNATURE);\r
-  Index     = 0;\r
+  ASSERT (ExpList->Signature == FORM_EXPRESSION_LIST_SIGNATURE);\r
+  Index = 0;\r
 \r
   //\r
   // Check whether need to evaluate the expression first.\r