]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/HiiDatabaseDxe/ConfigKeywordHandler.c
MdeModulePkg: Apply uncrustify changes
[mirror_edk2.git] / MdeModulePkg / Universal / HiiDatabaseDxe / ConfigKeywordHandler.c
index 69bff5148e6d1b3212ddbba249fda6382b3fa4ba..96e05d4cf96f1900f758e613a188bf32e5ed88a6 100644 (file)
@@ -6,10 +6,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 \r
 **/\r
 \r
-\r
 #include "HiiDatabase.h"\r
 \r
-extern HII_DATABASE_PRIVATE_DATA mPrivate;\r
+extern HII_DATABASE_PRIVATE_DATA  mPrivate;\r
 \r
 /**\r
   Convert the hex UNICODE %02x encoding of a UEFI device path to binary\r
@@ -29,18 +28,18 @@ extern HII_DATABASE_PRIVATE_DATA mPrivate;
 **/\r
 EFI_STATUS\r
 ExtractDevicePath (\r
-  IN  EFI_STRING                   String,\r
-  OUT UINT8                        **DevicePathData,\r
-  OUT EFI_STRING                   *NextString\r
+  IN  EFI_STRING  String,\r
+  OUT UINT8       **DevicePathData,\r
+  OUT EFI_STRING  *NextString\r
   )\r
 {\r
-  UINTN                    Length;\r
-  EFI_STRING               PathHdr;\r
-  UINT8                    *DevicePathBuffer;\r
-  CHAR16                   TemStr[2];\r
-  UINTN                    Index;\r
-  UINT8                    DigitUint8;\r
-  EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
+  UINTN                     Length;\r
+  EFI_STRING                PathHdr;\r
+  UINT8                     *DevicePathBuffer;\r
+  CHAR16                    TemStr[2];\r
+  UINTN                     Index;\r
+  UINT8                     DigitUint8;\r
+  EFI_DEVICE_PATH_PROTOCOL  *DevicePath;\r
 \r
   ASSERT (NextString != NULL && DevicePathData != NULL);\r
 \r
@@ -49,7 +48,7 @@ ExtractDevicePath (
   //\r
   if (String == NULL) {\r
     *DevicePathData = NULL;\r
-    *NextString = NULL;\r
+    *NextString     = NULL;\r
     return EFI_SUCCESS;\r
   }\r
 \r
@@ -57,7 +56,7 @@ ExtractDevicePath (
   // Skip '&' if exist.\r
   //\r
   if (*String == L'&') {\r
-    String ++;\r
+    String++;\r
   }\r
 \r
   //\r
@@ -71,7 +70,7 @@ ExtractDevicePath (
       // Not include PathHdr, return success and DevicePath = NULL.\r
       //\r
       *DevicePathData = NULL;\r
-      *NextString = String;\r
+      *NextString     = String;\r
       return EFI_SUCCESS;\r
     }\r
   }\r
@@ -83,6 +82,7 @@ ExtractDevicePath (
   if (*String == 0) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
+\r
   PathHdr = String;\r
 \r
   //\r
@@ -90,7 +90,8 @@ ExtractDevicePath (
   // or '\0' (end of configuration string) is the UNICODE %02x bytes encoding\r
   // of UEFI device path.\r
   //\r
-  for (Length = 0; *String != 0 && *String != L'&'; String++, Length++);\r
+  for (Length = 0; *String != 0 && *String != L'&'; String++, Length++) {\r
+  }\r
 \r
   //\r
   // Save the return next keyword string value.\r
@@ -109,7 +110,7 @@ ExtractDevicePath (
   // as the device path resides in RAM memory.\r
   // Translate the data into binary.\r
   //\r
-  DevicePathBuffer = (UINT8 *) AllocateZeroPool ((Length + 1) / 2);\r
+  DevicePathBuffer = (UINT8 *)AllocateZeroPool ((Length + 1) / 2);\r
   if (DevicePathBuffer == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
@@ -118,20 +119,20 @@ ExtractDevicePath (
   // Convert DevicePath\r
   //\r
   ZeroMem (TemStr, sizeof (TemStr));\r
-  for (Index = 0; Index < Length; Index ++) {\r
-    TemStr[0] = PathHdr[Index];\r
-    DigitUint8 = (UINT8) StrHexToUint64 (TemStr);\r
+  for (Index = 0; Index < Length; Index++) {\r
+    TemStr[0]  = PathHdr[Index];\r
+    DigitUint8 = (UINT8)StrHexToUint64 (TemStr);\r
     if ((Index & 1) == 0) {\r
-      DevicePathBuffer [Index/2] = DigitUint8;\r
+      DevicePathBuffer[Index/2] = DigitUint8;\r
     } else {\r
-      DevicePathBuffer [Index/2] = (UINT8) ((DevicePathBuffer [Index/2] << 4) + DigitUint8);\r
+      DevicePathBuffer[Index/2] = (UINT8)((DevicePathBuffer[Index/2] << 4) + DigitUint8);\r
     }\r
   }\r
 \r
   //\r
   // Validate DevicePath\r
   //\r
-  DevicePath  = (EFI_DEVICE_PATH_PROTOCOL *) DevicePathBuffer;\r
+  DevicePath = (EFI_DEVICE_PATH_PROTOCOL *)DevicePathBuffer;\r
   while (!IsDevicePathEnd (DevicePath)) {\r
     if ((DevicePath->Type == 0) || (DevicePath->SubType == 0) || (DevicePathNodeLength (DevicePath) < sizeof (EFI_DEVICE_PATH_PROTOCOL))) {\r
       //\r
@@ -140,6 +141,7 @@ ExtractDevicePath (
       FreePool (DevicePathBuffer);\r
       return EFI_INVALID_PARAMETER;\r
     }\r
+\r
     DevicePath = NextDevicePathNode (DevicePath);\r
   }\r
 \r
@@ -166,13 +168,13 @@ ExtractDevicePath (
 **/\r
 EFI_STATUS\r
 ExtractNameSpace (\r
-  IN  EFI_STRING                   String,\r
-  OUT CHAR8                        **NameSpace,\r
-  OUT EFI_STRING                   *NextString\r
+  IN  EFI_STRING  String,\r
+  OUT CHAR8       **NameSpace,\r
+  OUT EFI_STRING  *NextString\r
   )\r
 {\r
-  CHAR16    *TmpPtr;\r
-  UINTN     NameSpaceSize;\r
+  CHAR16  *TmpPtr;\r
+  UINTN   NameSpaceSize;\r
 \r
   ASSERT (NameSpace != NULL);\r
 \r
@@ -186,6 +188,7 @@ ExtractNameSpace (
     if (NextString != NULL) {\r
       *NextString = NULL;\r
     }\r
+\r
     return EFI_SUCCESS;\r
   }\r
 \r
@@ -199,12 +202,14 @@ ExtractNameSpace (
   if (StrnCmp (String, L"NAMESPACE=", StrLen (L"NAMESPACE=")) != 0) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
+\r
   String += StrLen (L"NAMESPACE=");\r
 \r
   TmpPtr = StrStr (String, L"&");\r
   if (TmpPtr != NULL) {\r
     *TmpPtr = 0;\r
   }\r
+\r
   if (NextString != NULL) {\r
     *NextString = String + StrLen (String);\r
   }\r
@@ -214,10 +219,11 @@ ExtractNameSpace (
   // Here will convert the unicode string to ascii and save it.\r
   //\r
   NameSpaceSize = StrLen (String) + 1;\r
-  *NameSpace = AllocatePool (NameSpaceSize);\r
+  *NameSpace    = AllocatePool (NameSpaceSize);\r
   if (*NameSpace == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
+\r
   UnicodeStrToAsciiStrS (String, *NameSpace, NameSpaceSize);\r
 \r
   if (TmpPtr != NULL) {\r
@@ -242,9 +248,9 @@ ExtractNameSpace (
 **/\r
 EFI_STATUS\r
 ExtractKeyword (\r
-  IN  EFI_STRING                   String,\r
-  OUT EFI_STRING                   *Keyword,\r
-  OUT EFI_STRING                   *NextString\r
+  IN  EFI_STRING  String,\r
+  OUT EFI_STRING  *Keyword,\r
+  OUT EFI_STRING  *NextString\r
   )\r
 {\r
   EFI_STRING  TmpPtr;\r
@@ -257,7 +263,7 @@ ExtractKeyword (
   // KeywordRequest == NULL case.\r
   //\r
   if (String == NULL) {\r
-    *Keyword = NULL;\r
+    *Keyword    = NULL;\r
     *NextString = NULL;\r
     return EFI_SUCCESS;\r
   }\r
@@ -279,6 +285,7 @@ ExtractKeyword (
   if (TmpPtr != NULL) {\r
     *TmpPtr = 0;\r
   }\r
+\r
   *NextString = String + StrLen (String);\r
 \r
   *Keyword = AllocateCopyPool (StrSize (String), String);\r
@@ -308,9 +315,9 @@ ExtractKeyword (
 **/\r
 EFI_STATUS\r
 ExtractValue (\r
-  IN  EFI_STRING                   String,\r
-  OUT EFI_STRING                   *Value,\r
-  OUT EFI_STRING                   *NextString\r
+  IN  EFI_STRING  String,\r
+  OUT EFI_STRING  *Value,\r
+  OUT EFI_STRING  *NextString\r
   )\r
 {\r
   EFI_STRING  TmpPtr;\r
@@ -334,6 +341,7 @@ ExtractValue (
   if (TmpPtr != NULL) {\r
     *TmpPtr = 0;\r
   }\r
+\r
   *NextString = String + StrLen (String);\r
 \r
   *Value = AllocateCopyPool (StrSize (String), String);\r
@@ -363,14 +371,14 @@ ExtractValue (
 **/\r
 BOOLEAN\r
 ExtractFilter (\r
-  IN  EFI_STRING                   String,\r
-  OUT UINT8                        *FilterFlags,\r
-  OUT EFI_STRING                   *NextString\r
+  IN  EFI_STRING  String,\r
+  OUT UINT8       *FilterFlags,\r
+  OUT EFI_STRING  *NextString\r
   )\r
 {\r
-  CHAR16      *PathPtr;\r
-  CHAR16      *KeywordPtr;\r
-  BOOLEAN     RetVal;\r
+  CHAR16   *PathPtr;\r
+  CHAR16   *KeywordPtr;\r
+  BOOLEAN  RetVal;\r
 \r
   ASSERT ((FilterFlags != NULL) && (NextString != NULL));\r
 \r
@@ -383,7 +391,7 @@ ExtractFilter (
   }\r
 \r
   *FilterFlags = 0;\r
-  RetVal = TRUE;\r
+  RetVal       = TRUE;\r
 \r
   //\r
   // Skip '&' if exist.\r
@@ -397,19 +405,19 @@ ExtractFilter (
     // Find ReadOnly filter.\r
     //\r
     *FilterFlags |= EFI_KEYWORD_FILTER_READONY;\r
-    String += StrLen (L"ReadOnly");\r
+    String       += StrLen (L"ReadOnly");\r
   } else if (StrnCmp (String, L"ReadWrite", StrLen (L"ReadWrite")) == 0) {\r
     //\r
     // Find ReadWrite filter.\r
     //\r
     *FilterFlags |= EFI_KEYWORD_FILTER_REAWRITE;\r
-    String += StrLen (L"ReadWrite");\r
+    String       += StrLen (L"ReadWrite");\r
   } else if (StrnCmp (String, L"Buffer", StrLen (L"Buffer")) == 0) {\r
     //\r
     // Find Buffer Filter.\r
     //\r
     *FilterFlags |= EFI_KEYWORD_FILTER_BUFFER;\r
-    String += StrLen (L"Buffer");\r
+    String       += StrLen (L"Buffer");\r
   } else if (StrnCmp (String, L"Numeric", StrLen (L"Numeric")) == 0) {\r
     //\r
     // Find Numeric Filter\r
@@ -420,22 +428,23 @@ ExtractFilter (
     } else {\r
       String++;\r
       switch (*String) {\r
-      case L'1':\r
-        *FilterFlags |= EFI_KEYWORD_FILTER_NUMERIC_1;\r
-        break;\r
-      case L'2':\r
-        *FilterFlags |= EFI_KEYWORD_FILTER_NUMERIC_2;\r
-        break;\r
-      case L'4':\r
-        *FilterFlags |= EFI_KEYWORD_FILTER_NUMERIC_4;\r
-        break;\r
-      case L'8':\r
-        *FilterFlags |= EFI_KEYWORD_FILTER_NUMERIC_8;\r
-        break;\r
-      default:\r
-        ASSERT (FALSE);\r
-        break;\r
+        case L'1':\r
+          *FilterFlags |= EFI_KEYWORD_FILTER_NUMERIC_1;\r
+          break;\r
+        case L'2':\r
+          *FilterFlags |= EFI_KEYWORD_FILTER_NUMERIC_2;\r
+          break;\r
+        case L'4':\r
+          *FilterFlags |= EFI_KEYWORD_FILTER_NUMERIC_4;\r
+          break;\r
+        case L'8':\r
+          *FilterFlags |= EFI_KEYWORD_FILTER_NUMERIC_8;\r
+          break;\r
+        default:\r
+          ASSERT (FALSE);\r
+          break;\r
       }\r
+\r
       String++;\r
     }\r
   } else {\r
@@ -443,7 +452,8 @@ ExtractFilter (
     // Check whether other filter item defined by Platform.\r
     //\r
     if ((StrnCmp (String, L"&PATH", StrLen (L"&PATH")) == 0) ||\r
-        (StrnCmp (String, L"&KEYWORD", StrLen (L"&KEYWORD")) == 0)) {\r
+        (StrnCmp (String, L"&KEYWORD", StrLen (L"&KEYWORD")) == 0))\r
+    {\r
       //\r
       // New KeywordRequest start, no platform defined filter.\r
       //\r
@@ -452,9 +462,9 @@ ExtractFilter (
       // Platform defined filter rule.\r
       // Just skip platform defined filter rule, return success.\r
       //\r
-      PathPtr = StrStr(String, L"&PATH");\r
-      KeywordPtr = StrStr(String, L"&KEYWORD");\r
-      if (PathPtr != NULL && KeywordPtr != NULL) {\r
+      PathPtr    = StrStr (String, L"&PATH");\r
+      KeywordPtr = StrStr (String, L"&KEYWORD");\r
+      if ((PathPtr != NULL) && (KeywordPtr != NULL)) {\r
         //\r
         // If both sections exist, return the first follow string.\r
         //\r
@@ -476,6 +486,7 @@ ExtractFilter (
         String += StrLen (String);\r
       }\r
     }\r
+\r
     RetVal = FALSE;\r
   }\r
 \r
@@ -497,14 +508,14 @@ ExtractFilter (
 **/\r
 BOOLEAN\r
 ExtractReadOnlyFromOpCode (\r
-  IN  UINT8         *OpCodeData\r
+  IN  UINT8  *OpCodeData\r
   )\r
 {\r
-  EFI_IFR_QUESTION_HEADER   *QuestionHdr;\r
+  EFI_IFR_QUESTION_HEADER  *QuestionHdr;\r
 \r
   ASSERT (OpCodeData != NULL);\r
 \r
-  QuestionHdr = (EFI_IFR_QUESTION_HEADER *) (OpCodeData + sizeof (EFI_IFR_OP_HEADER));\r
+  QuestionHdr = (EFI_IFR_QUESTION_HEADER *)(OpCodeData + sizeof (EFI_IFR_OP_HEADER));\r
 \r
   return (QuestionHdr->Flags & EFI_IFR_FLAG_READ_ONLY) != 0;\r
 }\r
@@ -525,26 +536,26 @@ ExtractReadOnlyFromOpCode (
 **/\r
 UINT32\r
 ValidateFilter (\r
-  IN  UINT8         *OpCodeData,\r
-  IN  CHAR16        *KeywordRequest,\r
-  OUT CHAR16        **NextString,\r
-  OUT BOOLEAN       *ReadOnly\r
+  IN  UINT8    *OpCodeData,\r
+  IN  CHAR16   *KeywordRequest,\r
+  OUT CHAR16   **NextString,\r
+  OUT BOOLEAN  *ReadOnly\r
   )\r
 {\r
-  CHAR16                    *NextFilter;\r
-  CHAR16                    *StringPtr;\r
-  UINT8                     FilterFlags;\r
-  EFI_IFR_QUESTION_HEADER   *QuestionHdr;\r
-  EFI_IFR_OP_HEADER         *OpCodeHdr;\r
-  UINT8                     Flags;\r
-  UINT32                    RetVal;\r
-\r
-  RetVal = KEYWORD_HANDLER_NO_ERROR;\r
+  CHAR16                   *NextFilter;\r
+  CHAR16                   *StringPtr;\r
+  UINT8                    FilterFlags;\r
+  EFI_IFR_QUESTION_HEADER  *QuestionHdr;\r
+  EFI_IFR_OP_HEADER        *OpCodeHdr;\r
+  UINT8                    Flags;\r
+  UINT32                   RetVal;\r
+\r
+  RetVal    = KEYWORD_HANDLER_NO_ERROR;\r
   StringPtr = KeywordRequest;\r
 \r
-  OpCodeHdr = (EFI_IFR_OP_HEADER *) OpCodeData;\r
-  QuestionHdr = (EFI_IFR_QUESTION_HEADER *) (OpCodeData + sizeof (EFI_IFR_OP_HEADER));\r
-  if (OpCodeHdr->OpCode == EFI_IFR_ONE_OF_OP || OpCodeHdr->OpCode == EFI_IFR_NUMERIC_OP) {\r
+  OpCodeHdr   = (EFI_IFR_OP_HEADER *)OpCodeData;\r
+  QuestionHdr = (EFI_IFR_QUESTION_HEADER *)(OpCodeData + sizeof (EFI_IFR_OP_HEADER));\r
+  if ((OpCodeHdr->OpCode == EFI_IFR_ONE_OF_OP) || (OpCodeHdr->OpCode == EFI_IFR_NUMERIC_OP)) {\r
     Flags = *(OpCodeData + sizeof (EFI_IFR_OP_HEADER) + sizeof (EFI_IFR_QUESTION_HEADER));\r
   } else {\r
     Flags = 0;\r
@@ -553,93 +564,102 @@ ValidateFilter (
   //\r
   // Get ReadOnly flag from Question.\r
   //\r
-  *ReadOnly = ExtractReadOnlyFromOpCode(OpCodeData);\r
+  *ReadOnly = ExtractReadOnlyFromOpCode (OpCodeData);\r
 \r
   while (ExtractFilter (StringPtr, &FilterFlags, &NextFilter)) {\r
     switch (FilterFlags) {\r
-    case EFI_KEYWORD_FILTER_READONY:\r
-      if ((QuestionHdr->Flags & EFI_IFR_FLAG_READ_ONLY) == 0) {\r
-        RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
-        goto Done;\r
-      }\r
-      break;\r
+      case EFI_KEYWORD_FILTER_READONY:\r
+        if ((QuestionHdr->Flags & EFI_IFR_FLAG_READ_ONLY) == 0) {\r
+          RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
+          goto Done;\r
+        }\r
 \r
-    case EFI_KEYWORD_FILTER_REAWRITE:\r
-      if ((QuestionHdr->Flags & EFI_IFR_FLAG_READ_ONLY) != 0) {\r
-        RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
-        goto Done;\r
-      }\r
-      break;\r
+        break;\r
 \r
-    case EFI_KEYWORD_FILTER_BUFFER:\r
-      //\r
-      // Only these three opcode use numeric value type.\r
-      //\r
-      if (OpCodeHdr->OpCode == EFI_IFR_ONE_OF_OP || OpCodeHdr->OpCode == EFI_IFR_NUMERIC_OP || OpCodeHdr->OpCode == EFI_IFR_CHECKBOX_OP) {\r
-        RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
-        goto Done;\r
-      }\r
-      break;\r
+      case EFI_KEYWORD_FILTER_REAWRITE:\r
+        if ((QuestionHdr->Flags & EFI_IFR_FLAG_READ_ONLY) != 0) {\r
+          RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
+          goto Done;\r
+        }\r
 \r
-    case EFI_KEYWORD_FILTER_NUMERIC:\r
-      if (OpCodeHdr->OpCode != EFI_IFR_ONE_OF_OP && OpCodeHdr->OpCode != EFI_IFR_NUMERIC_OP && OpCodeHdr->OpCode != EFI_IFR_CHECKBOX_OP) {\r
-        RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
-        goto Done;\r
-      }\r
-      break;\r
+        break;\r
 \r
-    case EFI_KEYWORD_FILTER_NUMERIC_1:\r
-    case EFI_KEYWORD_FILTER_NUMERIC_2:\r
-    case EFI_KEYWORD_FILTER_NUMERIC_4:\r
-    case EFI_KEYWORD_FILTER_NUMERIC_8:\r
-      if (OpCodeHdr->OpCode != EFI_IFR_ONE_OF_OP && OpCodeHdr->OpCode != EFI_IFR_NUMERIC_OP && OpCodeHdr->OpCode != EFI_IFR_CHECKBOX_OP) {\r
-        RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
-        goto Done;\r
-      }\r
+      case EFI_KEYWORD_FILTER_BUFFER:\r
+        //\r
+        // Only these three opcode use numeric value type.\r
+        //\r
+        if ((OpCodeHdr->OpCode == EFI_IFR_ONE_OF_OP) || (OpCodeHdr->OpCode == EFI_IFR_NUMERIC_OP) || (OpCodeHdr->OpCode == EFI_IFR_CHECKBOX_OP)) {\r
+          RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
+          goto Done;\r
+        }\r
 \r
-      //\r
-      // For numeric and oneof, it has flags field to specify the detail numeric type.\r
-      //\r
-      if (OpCodeHdr->OpCode == EFI_IFR_ONE_OF_OP || OpCodeHdr->OpCode == EFI_IFR_NUMERIC_OP) {\r
-        switch (Flags & EFI_IFR_NUMERIC_SIZE) {\r
-        case EFI_IFR_NUMERIC_SIZE_1:\r
-          if (FilterFlags != EFI_KEYWORD_FILTER_NUMERIC_1) {\r
-            RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
-            goto Done;\r
-          }\r
-          break;\r
+        break;\r
 \r
-        case EFI_IFR_NUMERIC_SIZE_2:\r
-          if (FilterFlags != EFI_KEYWORD_FILTER_NUMERIC_2) {\r
-            RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
-            goto Done;\r
-          }\r
-          break;\r
+      case EFI_KEYWORD_FILTER_NUMERIC:\r
+        if ((OpCodeHdr->OpCode != EFI_IFR_ONE_OF_OP) && (OpCodeHdr->OpCode != EFI_IFR_NUMERIC_OP) && (OpCodeHdr->OpCode != EFI_IFR_CHECKBOX_OP)) {\r
+          RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
+          goto Done;\r
+        }\r
 \r
-        case EFI_IFR_NUMERIC_SIZE_4:\r
-          if (FilterFlags != EFI_KEYWORD_FILTER_NUMERIC_4) {\r
-            RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
-            goto Done;\r
-          }\r
-          break;\r
+        break;\r
 \r
-        case EFI_IFR_NUMERIC_SIZE_8:\r
-          if (FilterFlags != EFI_KEYWORD_FILTER_NUMERIC_8) {\r
-            RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
-            goto Done;\r
-          }\r
-          break;\r
+      case EFI_KEYWORD_FILTER_NUMERIC_1:\r
+      case EFI_KEYWORD_FILTER_NUMERIC_2:\r
+      case EFI_KEYWORD_FILTER_NUMERIC_4:\r
+      case EFI_KEYWORD_FILTER_NUMERIC_8:\r
+        if ((OpCodeHdr->OpCode != EFI_IFR_ONE_OF_OP) && (OpCodeHdr->OpCode != EFI_IFR_NUMERIC_OP) && (OpCodeHdr->OpCode != EFI_IFR_CHECKBOX_OP)) {\r
+          RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
+          goto Done;\r
+        }\r
 \r
-        default:\r
-          ASSERT (FALSE);\r
-          break;\r
+        //\r
+        // For numeric and oneof, it has flags field to specify the detail numeric type.\r
+        //\r
+        if ((OpCodeHdr->OpCode == EFI_IFR_ONE_OF_OP) || (OpCodeHdr->OpCode == EFI_IFR_NUMERIC_OP)) {\r
+          switch (Flags & EFI_IFR_NUMERIC_SIZE) {\r
+            case EFI_IFR_NUMERIC_SIZE_1:\r
+              if (FilterFlags != EFI_KEYWORD_FILTER_NUMERIC_1) {\r
+                RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
+                goto Done;\r
+              }\r
+\r
+              break;\r
+\r
+            case EFI_IFR_NUMERIC_SIZE_2:\r
+              if (FilterFlags != EFI_KEYWORD_FILTER_NUMERIC_2) {\r
+                RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
+                goto Done;\r
+              }\r
+\r
+              break;\r
+\r
+            case EFI_IFR_NUMERIC_SIZE_4:\r
+              if (FilterFlags != EFI_KEYWORD_FILTER_NUMERIC_4) {\r
+                RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
+                goto Done;\r
+              }\r
+\r
+              break;\r
+\r
+            case EFI_IFR_NUMERIC_SIZE_8:\r
+              if (FilterFlags != EFI_KEYWORD_FILTER_NUMERIC_8) {\r
+                RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
+                goto Done;\r
+              }\r
+\r
+              break;\r
+\r
+            default:\r
+              ASSERT (FALSE);\r
+              break;\r
+          }\r
         }\r
-      }\r
-      break;\r
 \r
-    default:\r
-      ASSERT (FALSE);\r
-      break;\r
+        break;\r
+\r
+      default:\r
+        ASSERT (FALSE);\r
+        break;\r
     }\r
 \r
     //\r
@@ -669,23 +689,23 @@ Done:
 **/\r
 HII_DATABASE_RECORD *\r
 GetRecordFromDevicePath (\r
-  IN EFI_DEVICE_PATH_PROTOCOL   *DevicePath\r
+  IN EFI_DEVICE_PATH_PROTOCOL  *DevicePath\r
   )\r
 {\r
-  LIST_ENTRY             *Link;\r
-  UINT8                  *DevicePathPkg;\r
-  UINT8                  *CurrentDevicePath;\r
-  UINTN                  DevicePathSize;\r
-  HII_DATABASE_RECORD    *TempDatabase;\r
+  LIST_ENTRY           *Link;\r
+  UINT8                *DevicePathPkg;\r
+  UINT8                *CurrentDevicePath;\r
+  UINTN                DevicePathSize;\r
+  HII_DATABASE_RECORD  *TempDatabase;\r
 \r
   ASSERT (DevicePath != NULL);\r
 \r
   for (Link = mPrivate.DatabaseList.ForwardLink; Link != &mPrivate.DatabaseList; Link = Link->ForwardLink) {\r
-    TempDatabase = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);\r
+    TempDatabase  = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);\r
     DevicePathPkg = TempDatabase->PackageList->DevicePathPkg;\r
     if (DevicePathPkg != NULL) {\r
       CurrentDevicePath = DevicePathPkg + sizeof (EFI_HII_PACKAGE_HEADER);\r
-      DevicePathSize = GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) CurrentDevicePath);\r
+      DevicePathSize    = GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *)CurrentDevicePath);\r
       if ((CompareMem (DevicePath, CurrentDevicePath, DevicePathSize) == 0)) {\r
         return TempDatabase;\r
       }\r
@@ -711,9 +731,9 @@ GetRecordFromDevicePath (
 **/\r
 EFI_STATUS\r
 GetUnicodeStringTextAndSize (\r
-  IN  UINT8            *StringSrc,\r
-  OUT UINTN            *BufferSize,\r
-  OUT EFI_STRING       *StringDest\r
+  IN  UINT8       *StringSrc,\r
+  OUT UINTN       *BufferSize,\r
+  OUT EFI_STRING  *StringDest\r
   )\r
 {\r
   UINTN  StringSize;\r
@@ -723,9 +743,9 @@ GetUnicodeStringTextAndSize (
 \r
   StringSize = sizeof (CHAR16);\r
   StringPtr  = StringSrc;\r
-  while (ReadUnaligned16 ((UINT16 *) StringPtr) != 0) {\r
+  while (ReadUnaligned16 ((UINT16 *)StringPtr) != 0) {\r
     StringSize += sizeof (CHAR16);\r
-    StringPtr += sizeof (CHAR16);\r
+    StringPtr  += sizeof (CHAR16);\r
   }\r
 \r
   *StringDest = AllocatePool (StringSize);\r
@@ -756,237 +776,254 @@ GetUnicodeStringTextAndSize (
 **/\r
 EFI_STATUS\r
 GetStringIdFromString (\r
-  IN HII_STRING_PACKAGE_INSTANCE      *StringPackage,\r
-  IN CHAR16                           *KeywordValue,\r
-  OUT EFI_STRING_ID                   *StringId\r
+  IN HII_STRING_PACKAGE_INSTANCE  *StringPackage,\r
+  IN CHAR16                       *KeywordValue,\r
+  OUT EFI_STRING_ID               *StringId\r
   )\r
 {\r
-  UINT8                                *BlockHdr;\r
-  EFI_STRING_ID                        CurrentStringId;\r
-  UINTN                                BlockSize;\r
-  UINTN                                Index;\r
-  UINT8                                *StringTextPtr;\r
-  UINTN                                Offset;\r
-  UINT16                               StringCount;\r
-  UINT16                               SkipCount;\r
-  UINT8                                Length8;\r
-  EFI_HII_SIBT_EXT2_BLOCK              Ext2;\r
-  UINT32                               Length32;\r
-  UINTN                                StringSize;\r
-  CHAR16                               *String;\r
-  CHAR8                                *AsciiKeywordValue;\r
-  UINTN                                KeywordValueSize;\r
-  EFI_STATUS                           Status;\r
+  UINT8                    *BlockHdr;\r
+  EFI_STRING_ID            CurrentStringId;\r
+  UINTN                    BlockSize;\r
+  UINTN                    Index;\r
+  UINT8                    *StringTextPtr;\r
+  UINTN                    Offset;\r
+  UINT16                   StringCount;\r
+  UINT16                   SkipCount;\r
+  UINT8                    Length8;\r
+  EFI_HII_SIBT_EXT2_BLOCK  Ext2;\r
+  UINT32                   Length32;\r
+  UINTN                    StringSize;\r
+  CHAR16                   *String;\r
+  CHAR8                    *AsciiKeywordValue;\r
+  UINTN                    KeywordValueSize;\r
+  EFI_STATUS               Status;\r
 \r
   ASSERT (StringPackage != NULL && KeywordValue != NULL && StringId != NULL);\r
   ASSERT (StringPackage->Signature == HII_STRING_PACKAGE_SIGNATURE);\r
 \r
   CurrentStringId = 1;\r
-  Status = EFI_SUCCESS;\r
-  String = NULL;\r
-  BlockHdr = StringPackage->StringBlock;\r
-  BlockSize = 0;\r
-  Offset = 0;\r
+  Status          = EFI_SUCCESS;\r
+  String          = NULL;\r
+  BlockHdr        = StringPackage->StringBlock;\r
+  BlockSize       = 0;\r
+  Offset          = 0;\r
 \r
   //\r
   // Make a ascii keyword value for later use.\r
   //\r
-  KeywordValueSize = StrLen (KeywordValue) + 1;\r
+  KeywordValueSize  = StrLen (KeywordValue) + 1;\r
   AsciiKeywordValue = AllocatePool (KeywordValueSize);\r
   if (AsciiKeywordValue == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
+\r
   UnicodeStrToAsciiStrS (KeywordValue, AsciiKeywordValue, KeywordValueSize);\r
 \r
   while (*BlockHdr != EFI_HII_SIBT_END) {\r
     switch (*BlockHdr) {\r
-    case EFI_HII_SIBT_STRING_SCSU:\r
-      Offset = sizeof (EFI_HII_STRING_BLOCK);\r
-      StringTextPtr = BlockHdr + Offset;\r
-      BlockSize += Offset + AsciiStrSize ((CHAR8 *) StringTextPtr);\r
-      if (AsciiStrCmp(AsciiKeywordValue, (CHAR8 *) StringTextPtr) == 0) {\r
-        *StringId = CurrentStringId;\r
-        goto Done;\r
-      }\r
-      CurrentStringId++;\r
-      break;\r
-\r
-    case EFI_HII_SIBT_STRING_SCSU_FONT:\r
-      Offset = sizeof (EFI_HII_SIBT_STRING_SCSU_FONT_BLOCK) - sizeof (UINT8);\r
-      StringTextPtr = BlockHdr + Offset;\r
-      if (AsciiStrCmp(AsciiKeywordValue, (CHAR8 *) StringTextPtr) == 0) {\r
-        *StringId = CurrentStringId;\r
-        goto Done;\r
-      }\r
-      BlockSize += Offset + AsciiStrSize ((CHAR8 *) StringTextPtr);\r
-      CurrentStringId++;\r
-      break;\r
-\r
-    case EFI_HII_SIBT_STRINGS_SCSU:\r
-      CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));\r
-      StringTextPtr = (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_BLOCK) - sizeof (UINT8));\r
-      BlockSize += StringTextPtr - BlockHdr;\r
-\r
-      for (Index = 0; Index < StringCount; Index++) {\r
-        BlockSize += AsciiStrSize ((CHAR8 *) StringTextPtr);\r
-        if (AsciiStrCmp(AsciiKeywordValue, (CHAR8 *) StringTextPtr) == 0) {\r
+      case EFI_HII_SIBT_STRING_SCSU:\r
+        Offset        = sizeof (EFI_HII_STRING_BLOCK);\r
+        StringTextPtr = BlockHdr + Offset;\r
+        BlockSize    += Offset + AsciiStrSize ((CHAR8 *)StringTextPtr);\r
+        if (AsciiStrCmp (AsciiKeywordValue, (CHAR8 *)StringTextPtr) == 0) {\r
           *StringId = CurrentStringId;\r
           goto Done;\r
         }\r
-        StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *) StringTextPtr);\r
-        CurrentStringId++;\r
-      }\r
-      break;\r
 \r
-    case EFI_HII_SIBT_STRINGS_SCSU_FONT:\r
-      CopyMem (\r
-        &StringCount,\r
-        (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
-        sizeof (UINT16)\r
-        );\r
-      StringTextPtr = (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_FONT_BLOCK) - sizeof (UINT8));\r
-      BlockSize += StringTextPtr - BlockHdr;\r
+        CurrentStringId++;\r
+        break;\r
 \r
-      for (Index = 0; Index < StringCount; Index++) {\r
-        BlockSize += AsciiStrSize ((CHAR8 *) StringTextPtr);\r
-        if (AsciiStrCmp(AsciiKeywordValue, (CHAR8 *) StringTextPtr) == 0) {\r
+      case EFI_HII_SIBT_STRING_SCSU_FONT:\r
+        Offset        = sizeof (EFI_HII_SIBT_STRING_SCSU_FONT_BLOCK) - sizeof (UINT8);\r
+        StringTextPtr = BlockHdr + Offset;\r
+        if (AsciiStrCmp (AsciiKeywordValue, (CHAR8 *)StringTextPtr) == 0) {\r
           *StringId = CurrentStringId;\r
           goto Done;\r
         }\r
-        StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *) StringTextPtr);\r
+\r
+        BlockSize += Offset + AsciiStrSize ((CHAR8 *)StringTextPtr);\r
         CurrentStringId++;\r
-      }\r
-      break;\r
+        break;\r
 \r
-    case EFI_HII_SIBT_STRING_UCS2:\r
-      Offset        = sizeof (EFI_HII_STRING_BLOCK);\r
-      StringTextPtr = BlockHdr + Offset;\r
-      //\r
-      // Use StringSize to store the size of the specified string, including the NULL\r
-      // terminator.\r
-      //\r
-      Status = GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);\r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
-      ASSERT (String != NULL);\r
-      if (StrCmp(KeywordValue, String) == 0) {\r
-        *StringId = CurrentStringId;\r
-        goto Done;\r
-      }\r
-      BlockSize += Offset + StringSize;\r
-      CurrentStringId++;\r
-      break;\r
+      case EFI_HII_SIBT_STRINGS_SCSU:\r
+        CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));\r
+        StringTextPtr = (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_BLOCK) - sizeof (UINT8));\r
+        BlockSize    += StringTextPtr - BlockHdr;\r
 \r
-    case EFI_HII_SIBT_STRING_UCS2_FONT:\r
-      Offset = sizeof (EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK)  - sizeof (CHAR16);\r
-      StringTextPtr = BlockHdr + Offset;\r
-      //\r
-      // Use StringSize to store the size of the specified string, including the NULL\r
-      // terminator.\r
-      //\r
-      Status = GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);\r
-      if (EFI_ERROR (Status)) {\r
-        goto Done;\r
-      }\r
-      ASSERT (String != NULL);\r
-      if (StrCmp(KeywordValue, String) == 0) {\r
-        *StringId = CurrentStringId;\r
-        goto Done;\r
-      }\r
-      BlockSize += Offset + StringSize;\r
-      CurrentStringId++;\r
-      break;\r
+        for (Index = 0; Index < StringCount; Index++) {\r
+          BlockSize += AsciiStrSize ((CHAR8 *)StringTextPtr);\r
+          if (AsciiStrCmp (AsciiKeywordValue, (CHAR8 *)StringTextPtr) == 0) {\r
+            *StringId = CurrentStringId;\r
+            goto Done;\r
+          }\r
 \r
-    case EFI_HII_SIBT_STRINGS_UCS2:\r
-      Offset = sizeof (EFI_HII_SIBT_STRINGS_UCS2_BLOCK) - sizeof (CHAR16);\r
-      StringTextPtr = BlockHdr + Offset;\r
-      BlockSize += Offset;\r
-      CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));\r
-      for (Index = 0; Index < StringCount; Index++) {\r
+          StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *)StringTextPtr);\r
+          CurrentStringId++;\r
+        }\r
+\r
+        break;\r
+\r
+      case EFI_HII_SIBT_STRINGS_SCSU_FONT:\r
+        CopyMem (\r
+          &StringCount,\r
+          (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
+          sizeof (UINT16)\r
+          );\r
+        StringTextPtr = (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_FONT_BLOCK) - sizeof (UINT8));\r
+        BlockSize    += StringTextPtr - BlockHdr;\r
+\r
+        for (Index = 0; Index < StringCount; Index++) {\r
+          BlockSize += AsciiStrSize ((CHAR8 *)StringTextPtr);\r
+          if (AsciiStrCmp (AsciiKeywordValue, (CHAR8 *)StringTextPtr) == 0) {\r
+            *StringId = CurrentStringId;\r
+            goto Done;\r
+          }\r
+\r
+          StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *)StringTextPtr);\r
+          CurrentStringId++;\r
+        }\r
+\r
+        break;\r
+\r
+      case EFI_HII_SIBT_STRING_UCS2:\r
+        Offset        = sizeof (EFI_HII_STRING_BLOCK);\r
+        StringTextPtr = BlockHdr + Offset;\r
+        //\r
+        // Use StringSize to store the size of the specified string, including the NULL\r
+        // terminator.\r
+        //\r
         Status = GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);\r
         if (EFI_ERROR (Status)) {\r
           goto Done;\r
         }\r
+\r
         ASSERT (String != NULL);\r
-        BlockSize += StringSize;\r
-        if (StrCmp(KeywordValue, String) == 0) {\r
+        if (StrCmp (KeywordValue, String) == 0) {\r
           *StringId = CurrentStringId;\r
           goto Done;\r
         }\r
-        StringTextPtr = StringTextPtr + StringSize;\r
+\r
+        BlockSize += Offset + StringSize;\r
         CurrentStringId++;\r
-      }\r
-      break;\r
+        break;\r
 \r
-    case EFI_HII_SIBT_STRINGS_UCS2_FONT:\r
-      Offset = sizeof (EFI_HII_SIBT_STRINGS_UCS2_FONT_BLOCK) - sizeof (CHAR16);\r
-      StringTextPtr = BlockHdr + Offset;\r
-      BlockSize += Offset;\r
-      CopyMem (\r
-        &StringCount,\r
-        (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
-        sizeof (UINT16)\r
-        );\r
-      for (Index = 0; Index < StringCount; Index++) {\r
+      case EFI_HII_SIBT_STRING_UCS2_FONT:\r
+        Offset        = sizeof (EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK)  - sizeof (CHAR16);\r
+        StringTextPtr = BlockHdr + Offset;\r
+        //\r
+        // Use StringSize to store the size of the specified string, including the NULL\r
+        // terminator.\r
+        //\r
         Status = GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);\r
         if (EFI_ERROR (Status)) {\r
           goto Done;\r
         }\r
+\r
         ASSERT (String != NULL);\r
-        BlockSize += StringSize;\r
-        if (StrCmp(KeywordValue, String) == 0) {\r
+        if (StrCmp (KeywordValue, String) == 0) {\r
           *StringId = CurrentStringId;\r
           goto Done;\r
         }\r
-        StringTextPtr = StringTextPtr + StringSize;\r
+\r
+        BlockSize += Offset + StringSize;\r
         CurrentStringId++;\r
-      }\r
-      break;\r
+        break;\r
 \r
-    case EFI_HII_SIBT_DUPLICATE:\r
-      BlockSize       += sizeof (EFI_HII_SIBT_DUPLICATE_BLOCK);\r
-      CurrentStringId++;\r
-      break;\r
+      case EFI_HII_SIBT_STRINGS_UCS2:\r
+        Offset        = sizeof (EFI_HII_SIBT_STRINGS_UCS2_BLOCK) - sizeof (CHAR16);\r
+        StringTextPtr = BlockHdr + Offset;\r
+        BlockSize    += Offset;\r
+        CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));\r
+        for (Index = 0; Index < StringCount; Index++) {\r
+          Status = GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);\r
+          if (EFI_ERROR (Status)) {\r
+            goto Done;\r
+          }\r
 \r
-    case EFI_HII_SIBT_SKIP1:\r
-      SkipCount = (UINT16) (*(UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK)));\r
-      CurrentStringId = (UINT16) (CurrentStringId + SkipCount);\r
-      BlockSize       +=  sizeof (EFI_HII_SIBT_SKIP1_BLOCK);\r
-      break;\r
+          ASSERT (String != NULL);\r
+          BlockSize += StringSize;\r
+          if (StrCmp (KeywordValue, String) == 0) {\r
+            *StringId = CurrentStringId;\r
+            goto Done;\r
+          }\r
 \r
-    case EFI_HII_SIBT_SKIP2:\r
-      CopyMem (&SkipCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));\r
-      CurrentStringId = (UINT16) (CurrentStringId + SkipCount);\r
-      BlockSize       +=  sizeof (EFI_HII_SIBT_SKIP2_BLOCK);\r
-      break;\r
+          StringTextPtr = StringTextPtr + StringSize;\r
+          CurrentStringId++;\r
+        }\r
 \r
-    case EFI_HII_SIBT_EXT1:\r
-      CopyMem (\r
-        &Length8,\r
-        (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
-        sizeof (UINT8)\r
-        );\r
-      BlockSize += Length8;\r
-      break;\r
+        break;\r
 \r
-    case EFI_HII_SIBT_EXT2:\r
-      CopyMem (&Ext2, BlockHdr, sizeof (EFI_HII_SIBT_EXT2_BLOCK));\r
-      BlockSize += Ext2.Length;\r
-      break;\r
+      case EFI_HII_SIBT_STRINGS_UCS2_FONT:\r
+        Offset        = sizeof (EFI_HII_SIBT_STRINGS_UCS2_FONT_BLOCK) - sizeof (CHAR16);\r
+        StringTextPtr = BlockHdr + Offset;\r
+        BlockSize    += Offset;\r
+        CopyMem (\r
+          &StringCount,\r
+          (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
+          sizeof (UINT16)\r
+          );\r
+        for (Index = 0; Index < StringCount; Index++) {\r
+          Status = GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);\r
+          if (EFI_ERROR (Status)) {\r
+            goto Done;\r
+          }\r
 \r
-    case EFI_HII_SIBT_EXT4:\r
-      CopyMem (\r
-        &Length32,\r
-        (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
-        sizeof (UINT32)\r
-        );\r
+          ASSERT (String != NULL);\r
+          BlockSize += StringSize;\r
+          if (StrCmp (KeywordValue, String) == 0) {\r
+            *StringId = CurrentStringId;\r
+            goto Done;\r
+          }\r
 \r
-      BlockSize += Length32;\r
-      break;\r
+          StringTextPtr = StringTextPtr + StringSize;\r
+          CurrentStringId++;\r
+        }\r
 \r
-    default:\r
-      break;\r
+        break;\r
+\r
+      case EFI_HII_SIBT_DUPLICATE:\r
+        BlockSize += sizeof (EFI_HII_SIBT_DUPLICATE_BLOCK);\r
+        CurrentStringId++;\r
+        break;\r
+\r
+      case EFI_HII_SIBT_SKIP1:\r
+        SkipCount       = (UINT16)(*(UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK)));\r
+        CurrentStringId = (UINT16)(CurrentStringId + SkipCount);\r
+        BlockSize      +=  sizeof (EFI_HII_SIBT_SKIP1_BLOCK);\r
+        break;\r
+\r
+      case EFI_HII_SIBT_SKIP2:\r
+        CopyMem (&SkipCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));\r
+        CurrentStringId = (UINT16)(CurrentStringId + SkipCount);\r
+        BlockSize      +=  sizeof (EFI_HII_SIBT_SKIP2_BLOCK);\r
+        break;\r
+\r
+      case EFI_HII_SIBT_EXT1:\r
+        CopyMem (\r
+          &Length8,\r
+          (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
+          sizeof (UINT8)\r
+          );\r
+        BlockSize += Length8;\r
+        break;\r
+\r
+      case EFI_HII_SIBT_EXT2:\r
+        CopyMem (&Ext2, BlockHdr, sizeof (EFI_HII_SIBT_EXT2_BLOCK));\r
+        BlockSize += Ext2.Length;\r
+        break;\r
+\r
+      case EFI_HII_SIBT_EXT4:\r
+        CopyMem (\r
+          &Length32,\r
+          (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
+          sizeof (UINT32)\r
+          );\r
+\r
+        BlockSize += Length32;\r
+        break;\r
+\r
+      default:\r
+        break;\r
     }\r
 \r
     if (String != NULL) {\r
@@ -994,7 +1031,7 @@ GetStringIdFromString (
       String = NULL;\r
     }\r
 \r
-    BlockHdr  = StringPackage->StringBlock + BlockSize;\r
+    BlockHdr = StringPackage->StringBlock + BlockSize;\r
   }\r
 \r
   Status = EFI_NOT_FOUND;\r
@@ -1003,9 +1040,11 @@ Done:
   if (AsciiKeywordValue != NULL) {\r
     FreePool (AsciiKeywordValue);\r
   }\r
+\r
   if (String != NULL) {\r
     FreePool (String);\r
   }\r
+\r
   return Status;\r
 }\r
 \r
@@ -1023,32 +1062,32 @@ Done:
 **/\r
 EFI_STRING_ID\r
 GetNextStringId (\r
-  IN  HII_STRING_PACKAGE_INSTANCE      *StringPackage,\r
-  IN  EFI_STRING_ID                    StringId,\r
-  OUT EFI_STRING                       *KeywordValue\r
+  IN  HII_STRING_PACKAGE_INSTANCE  *StringPackage,\r
+  IN  EFI_STRING_ID                StringId,\r
+  OUT EFI_STRING                   *KeywordValue\r
   )\r
 {\r
-  UINT8                                *BlockHdr;\r
-  EFI_STRING_ID                        CurrentStringId;\r
-  UINTN                                BlockSize;\r
-  UINTN                                Index;\r
-  UINT8                                *StringTextPtr;\r
-  UINTN                                Offset;\r
-  UINT16                               StringCount;\r
-  UINT16                               SkipCount;\r
-  UINT8                                Length8;\r
-  EFI_HII_SIBT_EXT2_BLOCK              Ext2;\r
-  UINT32                               Length32;\r
-  BOOLEAN                              FindString;\r
-  UINTN                                StringSize;\r
-  CHAR16                               *String;\r
+  UINT8                    *BlockHdr;\r
+  EFI_STRING_ID            CurrentStringId;\r
+  UINTN                    BlockSize;\r
+  UINTN                    Index;\r
+  UINT8                    *StringTextPtr;\r
+  UINTN                    Offset;\r
+  UINT16                   StringCount;\r
+  UINT16                   SkipCount;\r
+  UINT8                    Length8;\r
+  EFI_HII_SIBT_EXT2_BLOCK  Ext2;\r
+  UINT32                   Length32;\r
+  BOOLEAN                  FindString;\r
+  UINTN                    StringSize;\r
+  CHAR16                   *String;\r
 \r
   ASSERT (StringPackage != NULL);\r
   ASSERT (StringPackage->Signature == HII_STRING_PACKAGE_SIGNATURE);\r
 \r
   CurrentStringId = 1;\r
-  FindString = FALSE;\r
-  String = NULL;\r
+  FindString      = FALSE;\r
+  String          = NULL;\r
 \r
   //\r
   // Parse the string blocks to get the string text and font.\r
@@ -1058,172 +1097,135 @@ GetNextStringId (
   Offset    = 0;\r
   while (*BlockHdr != EFI_HII_SIBT_END) {\r
     switch (*BlockHdr) {\r
-    case EFI_HII_SIBT_STRING_SCSU:\r
-      Offset = sizeof (EFI_HII_STRING_BLOCK);\r
-      StringTextPtr = BlockHdr + Offset;\r
-\r
-      if (FindString) {\r
-        StringSize = AsciiStrSize ((CHAR8 *) StringTextPtr);\r
-        *KeywordValue = AllocatePool (StringSize * sizeof (CHAR16));\r
-        if (*KeywordValue == NULL) {\r
-          return 0;\r
-        }\r
-        AsciiStrToUnicodeStrS ((CHAR8 *) StringTextPtr, *KeywordValue, StringSize);\r
-        return CurrentStringId;\r
-      } else if (CurrentStringId == StringId) {\r
-        FindString = TRUE;\r
-      }\r
-\r
-      BlockSize += Offset + AsciiStrSize ((CHAR8 *) StringTextPtr);\r
-      CurrentStringId++;\r
-      break;\r
-\r
-    case EFI_HII_SIBT_STRING_SCSU_FONT:\r
-      Offset = sizeof (EFI_HII_SIBT_STRING_SCSU_FONT_BLOCK) - sizeof (UINT8);\r
-      StringTextPtr = BlockHdr + Offset;\r
-\r
-      if (FindString) {\r
-        StringSize = AsciiStrSize ((CHAR8 *) StringTextPtr);\r
-        *KeywordValue = AllocatePool (StringSize * sizeof (CHAR16));\r
-        if (*KeywordValue == NULL) {\r
-          return 0;\r
-        }\r
-        AsciiStrToUnicodeStrS ((CHAR8 *) StringTextPtr, *KeywordValue, StringSize);\r
-        return CurrentStringId;\r
-      } else if (CurrentStringId == StringId) {\r
-        FindString = TRUE;\r
-      }\r
-\r
-      BlockSize += Offset + AsciiStrSize ((CHAR8 *) StringTextPtr);\r
-      CurrentStringId++;\r
-      break;\r
-\r
-    case EFI_HII_SIBT_STRINGS_SCSU:\r
-      CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));\r
-      StringTextPtr = (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_BLOCK) - sizeof (UINT8));\r
-      BlockSize += StringTextPtr - BlockHdr;\r
+      case EFI_HII_SIBT_STRING_SCSU:\r
+        Offset        = sizeof (EFI_HII_STRING_BLOCK);\r
+        StringTextPtr = BlockHdr + Offset;\r
 \r
-      for (Index = 0; Index < StringCount; Index++) {\r
         if (FindString) {\r
-          StringSize = AsciiStrSize ((CHAR8 *) StringTextPtr);\r
+          StringSize    = AsciiStrSize ((CHAR8 *)StringTextPtr);\r
           *KeywordValue = AllocatePool (StringSize * sizeof (CHAR16));\r
           if (*KeywordValue == NULL) {\r
             return 0;\r
           }\r
-          AsciiStrToUnicodeStrS ((CHAR8 *) StringTextPtr, *KeywordValue, StringSize);\r
+\r
+          AsciiStrToUnicodeStrS ((CHAR8 *)StringTextPtr, *KeywordValue, StringSize);\r
           return CurrentStringId;\r
         } else if (CurrentStringId == StringId) {\r
           FindString = TRUE;\r
         }\r
 \r
-        BlockSize += AsciiStrSize ((CHAR8 *) StringTextPtr);\r
-        StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *) StringTextPtr);\r
+        BlockSize += Offset + AsciiStrSize ((CHAR8 *)StringTextPtr);\r
         CurrentStringId++;\r
-      }\r
-      break;\r
+        break;\r
 \r
-    case EFI_HII_SIBT_STRINGS_SCSU_FONT:\r
-      CopyMem (\r
-        &StringCount,\r
-        (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
-        sizeof (UINT16)\r
-        );\r
-      StringTextPtr = (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_FONT_BLOCK) - sizeof (UINT8));\r
-      BlockSize += StringTextPtr - BlockHdr;\r
+      case EFI_HII_SIBT_STRING_SCSU_FONT:\r
+        Offset        = sizeof (EFI_HII_SIBT_STRING_SCSU_FONT_BLOCK) - sizeof (UINT8);\r
+        StringTextPtr = BlockHdr + Offset;\r
 \r
-      for (Index = 0; Index < StringCount; Index++) {\r
         if (FindString) {\r
-          StringSize = AsciiStrSize ((CHAR8 *) StringTextPtr);\r
+          StringSize    = AsciiStrSize ((CHAR8 *)StringTextPtr);\r
           *KeywordValue = AllocatePool (StringSize * sizeof (CHAR16));\r
           if (*KeywordValue == NULL) {\r
             return 0;\r
           }\r
-          AsciiStrToUnicodeStrS ((CHAR8 *) StringTextPtr, *KeywordValue, StringSize);\r
+\r
+          AsciiStrToUnicodeStrS ((CHAR8 *)StringTextPtr, *KeywordValue, StringSize);\r
           return CurrentStringId;\r
         } else if (CurrentStringId == StringId) {\r
           FindString = TRUE;\r
         }\r
 \r
-        BlockSize += AsciiStrSize ((CHAR8 *) StringTextPtr);\r
-        StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *) StringTextPtr);\r
+        BlockSize += Offset + AsciiStrSize ((CHAR8 *)StringTextPtr);\r
         CurrentStringId++;\r
-      }\r
-      break;\r
+        break;\r
 \r
-    case EFI_HII_SIBT_STRING_UCS2:\r
-      Offset        = sizeof (EFI_HII_STRING_BLOCK);\r
-      StringTextPtr = BlockHdr + Offset;\r
-      //\r
-      // Use StringSize to store the size of the specified string, including the NULL\r
-      // terminator.\r
-      //\r
-      GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);\r
-      if (FindString && (String != NULL) && (*String != L'\0')) {\r
-        //\r
-        // String protocol use this type for the string id which has value for other package.\r
-        // It will allocate an empty string block for this string id. so here we also check\r
-        // *String != L'\0' to prohibit this case.\r
-        //\r
-        *KeywordValue = String;\r
-        return CurrentStringId;\r
-      } else if (CurrentStringId == StringId) {\r
-        FindString = TRUE;\r
-      }\r
+      case EFI_HII_SIBT_STRINGS_SCSU:\r
+        CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));\r
+        StringTextPtr = (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_BLOCK) - sizeof (UINT8));\r
+        BlockSize    += StringTextPtr - BlockHdr;\r
+\r
+        for (Index = 0; Index < StringCount; Index++) {\r
+          if (FindString) {\r
+            StringSize    = AsciiStrSize ((CHAR8 *)StringTextPtr);\r
+            *KeywordValue = AllocatePool (StringSize * sizeof (CHAR16));\r
+            if (*KeywordValue == NULL) {\r
+              return 0;\r
+            }\r
 \r
-      BlockSize += Offset + StringSize;\r
-      CurrentStringId++;\r
-      break;\r
+            AsciiStrToUnicodeStrS ((CHAR8 *)StringTextPtr, *KeywordValue, StringSize);\r
+            return CurrentStringId;\r
+          } else if (CurrentStringId == StringId) {\r
+            FindString = TRUE;\r
+          }\r
 \r
-    case EFI_HII_SIBT_STRING_UCS2_FONT:\r
-      Offset = sizeof (EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK)  - sizeof (CHAR16);\r
-      StringTextPtr = BlockHdr + Offset;\r
-      //\r
-      // Use StringSize to store the size of the specified string, including the NULL\r
-      // terminator.\r
-      //\r
-      GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);\r
-      if (FindString) {\r
-        *KeywordValue = String;\r
-        return CurrentStringId;\r
-      } else if (CurrentStringId == StringId) {\r
-        FindString = TRUE;\r
-      }\r
+          BlockSize    += AsciiStrSize ((CHAR8 *)StringTextPtr);\r
+          StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *)StringTextPtr);\r
+          CurrentStringId++;\r
+        }\r
 \r
-      BlockSize += Offset + StringSize;\r
-      CurrentStringId++;\r
-      break;\r
+        break;\r
 \r
-    case EFI_HII_SIBT_STRINGS_UCS2:\r
-      Offset = sizeof (EFI_HII_SIBT_STRINGS_UCS2_BLOCK) - sizeof (CHAR16);\r
-      StringTextPtr = BlockHdr + Offset;\r
-      BlockSize += Offset;\r
-      CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));\r
-      for (Index = 0; Index < StringCount; Index++) {\r
-        GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);\r
+      case EFI_HII_SIBT_STRINGS_SCSU_FONT:\r
+        CopyMem (\r
+          &StringCount,\r
+          (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
+          sizeof (UINT16)\r
+          );\r
+        StringTextPtr = (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_FONT_BLOCK) - sizeof (UINT8));\r
+        BlockSize    += StringTextPtr - BlockHdr;\r
+\r
+        for (Index = 0; Index < StringCount; Index++) {\r
+          if (FindString) {\r
+            StringSize    = AsciiStrSize ((CHAR8 *)StringTextPtr);\r
+            *KeywordValue = AllocatePool (StringSize * sizeof (CHAR16));\r
+            if (*KeywordValue == NULL) {\r
+              return 0;\r
+            }\r
 \r
-        if (FindString) {\r
+            AsciiStrToUnicodeStrS ((CHAR8 *)StringTextPtr, *KeywordValue, StringSize);\r
+            return CurrentStringId;\r
+          } else if (CurrentStringId == StringId) {\r
+            FindString = TRUE;\r
+          }\r
+\r
+          BlockSize    += AsciiStrSize ((CHAR8 *)StringTextPtr);\r
+          StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *)StringTextPtr);\r
+          CurrentStringId++;\r
+        }\r
+\r
+        break;\r
+\r
+      case EFI_HII_SIBT_STRING_UCS2:\r
+        Offset        = sizeof (EFI_HII_STRING_BLOCK);\r
+        StringTextPtr = BlockHdr + Offset;\r
+        //\r
+        // Use StringSize to store the size of the specified string, including the NULL\r
+        // terminator.\r
+        //\r
+        GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);\r
+        if (FindString && (String != NULL) && (*String != L'\0')) {\r
+          //\r
+          // String protocol use this type for the string id which has value for other package.\r
+          // It will allocate an empty string block for this string id. so here we also check\r
+          // *String != L'\0' to prohibit this case.\r
+          //\r
           *KeywordValue = String;\r
           return CurrentStringId;\r
         } else if (CurrentStringId == StringId) {\r
           FindString = TRUE;\r
         }\r
 \r
-        BlockSize += StringSize;\r
-        StringTextPtr = StringTextPtr + StringSize;\r
+        BlockSize += Offset + StringSize;\r
         CurrentStringId++;\r
-      }\r
-      break;\r
+        break;\r
 \r
-    case EFI_HII_SIBT_STRINGS_UCS2_FONT:\r
-      Offset = sizeof (EFI_HII_SIBT_STRINGS_UCS2_FONT_BLOCK) - sizeof (CHAR16);\r
-      StringTextPtr = BlockHdr + Offset;\r
-      BlockSize += Offset;\r
-      CopyMem (\r
-        &StringCount,\r
-        (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
-        sizeof (UINT16)\r
-        );\r
-      for (Index = 0; Index < StringCount; Index++) {\r
+      case EFI_HII_SIBT_STRING_UCS2_FONT:\r
+        Offset        = sizeof (EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK)  - sizeof (CHAR16);\r
+        StringTextPtr = BlockHdr + Offset;\r
+        //\r
+        // Use StringSize to store the size of the specified string, including the NULL\r
+        // terminator.\r
+        //\r
         GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);\r
         if (FindString) {\r
           *KeywordValue = String;\r
@@ -1232,55 +1234,100 @@ GetNextStringId (
           FindString = TRUE;\r
         }\r
 \r
-        BlockSize += StringSize;\r
-        StringTextPtr = StringTextPtr + StringSize;\r
+        BlockSize += Offset + StringSize;\r
         CurrentStringId++;\r
-      }\r
-      break;\r
+        break;\r
 \r
-    case EFI_HII_SIBT_DUPLICATE:\r
-      BlockSize       += sizeof (EFI_HII_SIBT_DUPLICATE_BLOCK);\r
-      CurrentStringId++;\r
-      break;\r
+      case EFI_HII_SIBT_STRINGS_UCS2:\r
+        Offset        = sizeof (EFI_HII_SIBT_STRINGS_UCS2_BLOCK) - sizeof (CHAR16);\r
+        StringTextPtr = BlockHdr + Offset;\r
+        BlockSize    += Offset;\r
+        CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));\r
+        for (Index = 0; Index < StringCount; Index++) {\r
+          GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);\r
+\r
+          if (FindString) {\r
+            *KeywordValue = String;\r
+            return CurrentStringId;\r
+          } else if (CurrentStringId == StringId) {\r
+            FindString = TRUE;\r
+          }\r
 \r
-    case EFI_HII_SIBT_SKIP1:\r
-      SkipCount = (UINT16) (*(UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK)));\r
-      CurrentStringId = (UINT16) (CurrentStringId + SkipCount);\r
-      BlockSize       +=  sizeof (EFI_HII_SIBT_SKIP1_BLOCK);\r
-      break;\r
+          BlockSize    += StringSize;\r
+          StringTextPtr = StringTextPtr + StringSize;\r
+          CurrentStringId++;\r
+        }\r
 \r
-    case EFI_HII_SIBT_SKIP2:\r
-      CopyMem (&SkipCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));\r
-      CurrentStringId = (UINT16) (CurrentStringId + SkipCount);\r
-      BlockSize       +=  sizeof (EFI_HII_SIBT_SKIP2_BLOCK);\r
-      break;\r
+        break;\r
 \r
-    case EFI_HII_SIBT_EXT1:\r
-      CopyMem (\r
-        &Length8,\r
-        (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
-        sizeof (UINT8)\r
-        );\r
-      BlockSize += Length8;\r
-      break;\r
+      case EFI_HII_SIBT_STRINGS_UCS2_FONT:\r
+        Offset        = sizeof (EFI_HII_SIBT_STRINGS_UCS2_FONT_BLOCK) - sizeof (CHAR16);\r
+        StringTextPtr = BlockHdr + Offset;\r
+        BlockSize    += Offset;\r
+        CopyMem (\r
+          &StringCount,\r
+          (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
+          sizeof (UINT16)\r
+          );\r
+        for (Index = 0; Index < StringCount; Index++) {\r
+          GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);\r
+          if (FindString) {\r
+            *KeywordValue = String;\r
+            return CurrentStringId;\r
+          } else if (CurrentStringId == StringId) {\r
+            FindString = TRUE;\r
+          }\r
 \r
-    case EFI_HII_SIBT_EXT2:\r
-      CopyMem (&Ext2, BlockHdr, sizeof (EFI_HII_SIBT_EXT2_BLOCK));\r
-      BlockSize += Ext2.Length;\r
-      break;\r
+          BlockSize    += StringSize;\r
+          StringTextPtr = StringTextPtr + StringSize;\r
+          CurrentStringId++;\r
+        }\r
 \r
-    case EFI_HII_SIBT_EXT4:\r
-      CopyMem (\r
-        &Length32,\r
-        (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
-        sizeof (UINT32)\r
-        );\r
+        break;\r
 \r
-      BlockSize += Length32;\r
-      break;\r
+      case EFI_HII_SIBT_DUPLICATE:\r
+        BlockSize += sizeof (EFI_HII_SIBT_DUPLICATE_BLOCK);\r
+        CurrentStringId++;\r
+        break;\r
 \r
-    default:\r
-      break;\r
+      case EFI_HII_SIBT_SKIP1:\r
+        SkipCount       = (UINT16)(*(UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK)));\r
+        CurrentStringId = (UINT16)(CurrentStringId + SkipCount);\r
+        BlockSize      +=  sizeof (EFI_HII_SIBT_SKIP1_BLOCK);\r
+        break;\r
+\r
+      case EFI_HII_SIBT_SKIP2:\r
+        CopyMem (&SkipCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));\r
+        CurrentStringId = (UINT16)(CurrentStringId + SkipCount);\r
+        BlockSize      +=  sizeof (EFI_HII_SIBT_SKIP2_BLOCK);\r
+        break;\r
+\r
+      case EFI_HII_SIBT_EXT1:\r
+        CopyMem (\r
+          &Length8,\r
+          (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
+          sizeof (UINT8)\r
+          );\r
+        BlockSize += Length8;\r
+        break;\r
+\r
+      case EFI_HII_SIBT_EXT2:\r
+        CopyMem (&Ext2, BlockHdr, sizeof (EFI_HII_SIBT_EXT2_BLOCK));\r
+        BlockSize += Ext2.Length;\r
+        break;\r
+\r
+      case EFI_HII_SIBT_EXT4:\r
+        CopyMem (\r
+          &Length32,\r
+          (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
+          sizeof (UINT32)\r
+          );\r
+\r
+        BlockSize += Length32;\r
+        break;\r
+\r
+      default:\r
+        break;\r
     }\r
 \r
     if (String != NULL) {\r
@@ -1288,7 +1335,7 @@ GetNextStringId (
       String = NULL;\r
     }\r
 \r
-    BlockHdr  = StringPackage->StringBlock + BlockSize;\r
+    BlockHdr = StringPackage->StringBlock + BlockSize;\r
   }\r
 \r
   return 0;\r
@@ -1312,10 +1359,10 @@ GetNextStringId (
 **/\r
 UINT32\r
 GetStringIdFromRecord (\r
-  IN HII_DATABASE_RECORD   *DatabaseRecord,\r
-  IN CHAR8                 **NameSpace,\r
-  IN CHAR16                *KeywordValue,\r
-  OUT EFI_STRING_ID        *StringId\r
+  IN HII_DATABASE_RECORD  *DatabaseRecord,\r
+  IN CHAR8                **NameSpace,\r
+  IN CHAR16               *KeywordValue,\r
+  OUT EFI_STRING_ID       *StringId\r
   )\r
 {\r
   LIST_ENTRY                          *Link;\r
@@ -1328,7 +1375,7 @@ GetStringIdFromRecord (
   ASSERT (DatabaseRecord != NULL && NameSpace != NULL && KeywordValue != NULL);\r
 \r
   PackageListNode = DatabaseRecord->PackageList;\r
-  RetVal = KEYWORD_HANDLER_NAMESPACE_ID_NOT_FOUND;\r
+  RetVal          = KEYWORD_HANDLER_NAMESPACE_ID_NOT_FOUND;\r
 \r
   if (*NameSpace != NULL) {\r
     Name = *NameSpace;\r
@@ -1339,7 +1386,7 @@ GetStringIdFromRecord (
   for (Link = PackageListNode->StringPkgHdr.ForwardLink; Link != &PackageListNode->StringPkgHdr; Link = Link->ForwardLink) {\r
     StringPackage = CR (Link, HII_STRING_PACKAGE_INSTANCE, StringEntry, HII_STRING_PACKAGE_SIGNATURE);\r
 \r
-    if (AsciiStrnCmp(Name, StringPackage->StringPkgHdr->Language, AsciiStrLen (Name)) == 0) {\r
+    if (AsciiStrnCmp (Name, StringPackage->StringPkgHdr->Language, AsciiStrLen (Name)) == 0) {\r
       Status = GetStringIdFromString (StringPackage, KeywordValue, StringId);\r
       if (EFI_ERROR (Status)) {\r
         return KEYWORD_HANDLER_KEYWORD_NOT_FOUND;\r
@@ -1350,6 +1397,7 @@ GetStringIdFromRecord (
             return KEYWORD_HANDLER_UNDEFINED_PROCESSING_ERROR;\r
           }\r
         }\r
+\r
         return KEYWORD_HANDLER_NO_ERROR;\r
       }\r
     }\r
@@ -1369,7 +1417,7 @@ GetStringIdFromRecord (
 **/\r
 BOOLEAN\r
 IsStatementOpCode (\r
-  IN UINT8              Operand\r
+  IN UINT8  Operand\r
   )\r
 {\r
   if ((Operand == EFI_IFR_SUBTITLE_OP) ||\r
@@ -1385,7 +1433,8 @@ IsStatementOpCode (
       (Operand == EFI_IFR_DATE_OP) ||\r
       (Operand == EFI_IFR_TIME_OP) ||\r
       (Operand == EFI_IFR_GUID_OP) ||\r
-      (Operand == EFI_IFR_ONE_OF_OP)) {\r
+      (Operand == EFI_IFR_ONE_OF_OP))\r
+  {\r
     return TRUE;\r
   }\r
 \r
@@ -1403,12 +1452,13 @@ IsStatementOpCode (
 **/\r
 BOOLEAN\r
 IsStorageOpCode (\r
-  IN UINT8              Operand\r
+  IN UINT8  Operand\r
   )\r
 {\r
   if ((Operand == EFI_IFR_VARSTORE_OP) ||\r
       (Operand == EFI_IFR_VARSTORE_NAME_VALUE_OP) ||\r
-      (Operand == EFI_IFR_VARSTORE_EFI_OP)) {\r
+      (Operand == EFI_IFR_VARSTORE_EFI_OP))\r
+  {\r
     return TRUE;\r
   }\r
 \r
@@ -1426,26 +1476,26 @@ IsStorageOpCode (
 **/\r
 UINT8 *\r
 FindQuestionFromStringId (\r
-  IN HII_IFR_PACKAGE_INSTANCE      *FormPackage,\r
-  IN EFI_STRING_ID                 KeywordStrId\r
+  IN HII_IFR_PACKAGE_INSTANCE  *FormPackage,\r
+  IN EFI_STRING_ID             KeywordStrId\r
   )\r
 {\r
-  UINT8                        *OpCodeData;\r
-  UINT32                       Offset;\r
-  EFI_IFR_STATEMENT_HEADER     *StatementHeader;\r
-  EFI_IFR_OP_HEADER            *OpCodeHeader;\r
-  UINT32                       FormDataLen;\r
+  UINT8                     *OpCodeData;\r
+  UINT32                    Offset;\r
+  EFI_IFR_STATEMENT_HEADER  *StatementHeader;\r
+  EFI_IFR_OP_HEADER         *OpCodeHeader;\r
+  UINT32                    FormDataLen;\r
 \r
   ASSERT (FormPackage != NULL);\r
 \r
   FormDataLen = FormPackage->FormPkgHdr.Length - sizeof (EFI_HII_PACKAGE_HEADER);\r
-  Offset = 0;\r
+  Offset      = 0;\r
   while (Offset < FormDataLen) {\r
-    OpCodeData = FormPackage->IfrData + Offset;\r
-    OpCodeHeader = (EFI_IFR_OP_HEADER *) OpCodeData;\r
+    OpCodeData   = FormPackage->IfrData + Offset;\r
+    OpCodeHeader = (EFI_IFR_OP_HEADER *)OpCodeData;\r
 \r
-    if (IsStatementOpCode(OpCodeHeader->OpCode)) {\r
-      StatementHeader = (EFI_IFR_STATEMENT_HEADER *) (OpCodeData + sizeof (EFI_IFR_OP_HEADER));\r
+    if (IsStatementOpCode (OpCodeHeader->OpCode)) {\r
+      StatementHeader = (EFI_IFR_STATEMENT_HEADER *)(OpCodeData + sizeof (EFI_IFR_OP_HEADER));\r
       if (StatementHeader->Prompt == KeywordStrId) {\r
         return OpCodeData;\r
       }\r
@@ -1468,45 +1518,48 @@ FindQuestionFromStringId (
 **/\r
 UINT8 *\r
 FindStorageFromVarId (\r
-  IN HII_IFR_PACKAGE_INSTANCE      *FormPackage,\r
-  IN EFI_VARSTORE_ID               VarStoreId\r
+  IN HII_IFR_PACKAGE_INSTANCE  *FormPackage,\r
+  IN EFI_VARSTORE_ID           VarStoreId\r
   )\r
 {\r
-  UINT8                        *OpCodeData;\r
-  UINT32                       Offset;\r
-  EFI_IFR_OP_HEADER            *OpCodeHeader;\r
-  UINT32                       FormDataLen;\r
+  UINT8              *OpCodeData;\r
+  UINT32             Offset;\r
+  EFI_IFR_OP_HEADER  *OpCodeHeader;\r
+  UINT32             FormDataLen;\r
 \r
   ASSERT (FormPackage != NULL);\r
 \r
   FormDataLen = FormPackage->FormPkgHdr.Length - sizeof (EFI_HII_PACKAGE_HEADER);\r
-  Offset = 0;\r
+  Offset      = 0;\r
   while (Offset < FormDataLen) {\r
-    OpCodeData = FormPackage->IfrData + Offset;\r
-    OpCodeHeader = (EFI_IFR_OP_HEADER *) OpCodeData;\r
+    OpCodeData   = FormPackage->IfrData + Offset;\r
+    OpCodeHeader = (EFI_IFR_OP_HEADER *)OpCodeData;\r
 \r
-    if (IsStorageOpCode(OpCodeHeader->OpCode)) {\r
+    if (IsStorageOpCode (OpCodeHeader->OpCode)) {\r
       switch (OpCodeHeader->OpCode) {\r
-      case EFI_IFR_VARSTORE_OP:\r
-        if (VarStoreId == ((EFI_IFR_VARSTORE *) OpCodeData)->VarStoreId) {\r
-          return OpCodeData;\r
-        }\r
-        break;\r
+        case EFI_IFR_VARSTORE_OP:\r
+          if (VarStoreId == ((EFI_IFR_VARSTORE *)OpCodeData)->VarStoreId) {\r
+            return OpCodeData;\r
+          }\r
 \r
-      case EFI_IFR_VARSTORE_NAME_VALUE_OP:\r
-        if (VarStoreId == ((EFI_IFR_VARSTORE_NAME_VALUE *) OpCodeData)->VarStoreId) {\r
-          return OpCodeData;\r
-        }\r
-        break;\r
+          break;\r
 \r
-      case EFI_IFR_VARSTORE_EFI_OP:\r
-        if (VarStoreId == ((EFI_IFR_VARSTORE_EFI *) OpCodeData)->VarStoreId) {\r
-          return OpCodeData;\r
-        }\r
-        break;\r
+        case EFI_IFR_VARSTORE_NAME_VALUE_OP:\r
+          if (VarStoreId == ((EFI_IFR_VARSTORE_NAME_VALUE *)OpCodeData)->VarStoreId) {\r
+            return OpCodeData;\r
+          }\r
 \r
-      default:\r
-        break;\r
+          break;\r
+\r
+        case EFI_IFR_VARSTORE_EFI_OP:\r
+          if (VarStoreId == ((EFI_IFR_VARSTORE_EFI *)OpCodeData)->VarStoreId) {\r
+            return OpCodeData;\r
+          }\r
+\r
+          break;\r
+\r
+        default:\r
+          break;\r
       }\r
     }\r
 \r
@@ -1526,79 +1579,79 @@ FindStorageFromVarId (
 **/\r
 UINT16\r
 GetWidth (\r
-  IN UINT8        *OpCodeData\r
+  IN UINT8  *OpCodeData\r
   )\r
 {\r
-  UINT8      *NextOpCodeData;\r
+  UINT8  *NextOpCodeData;\r
 \r
   ASSERT (OpCodeData != NULL);\r
 \r
-  switch (((EFI_IFR_OP_HEADER *) OpCodeData)->OpCode) {\r
-  case EFI_IFR_REF_OP:\r
-    return (UINT16) sizeof (EFI_HII_REF);\r
+  switch (((EFI_IFR_OP_HEADER *)OpCodeData)->OpCode) {\r
+    case EFI_IFR_REF_OP:\r
+      return (UINT16)sizeof (EFI_HII_REF);\r
 \r
-  case EFI_IFR_ONE_OF_OP:\r
-  case EFI_IFR_NUMERIC_OP:\r
-    switch (((EFI_IFR_ONE_OF *) OpCodeData)->Flags & EFI_IFR_NUMERIC_SIZE) {\r
-    case EFI_IFR_NUMERIC_SIZE_1:\r
-      return (UINT16) sizeof (UINT8);\r
+    case EFI_IFR_ONE_OF_OP:\r
+    case EFI_IFR_NUMERIC_OP:\r
+      switch (((EFI_IFR_ONE_OF *)OpCodeData)->Flags & EFI_IFR_NUMERIC_SIZE) {\r
+        case EFI_IFR_NUMERIC_SIZE_1:\r
+          return (UINT16)sizeof (UINT8);\r
 \r
-    case EFI_IFR_NUMERIC_SIZE_2:\r
-      return  (UINT16) sizeof (UINT16);\r
+        case EFI_IFR_NUMERIC_SIZE_2:\r
+          return (UINT16)sizeof (UINT16);\r
 \r
-    case EFI_IFR_NUMERIC_SIZE_4:\r
-      return (UINT16) sizeof (UINT32);\r
+        case EFI_IFR_NUMERIC_SIZE_4:\r
+          return (UINT16)sizeof (UINT32);\r
 \r
-    case EFI_IFR_NUMERIC_SIZE_8:\r
-      return (UINT16) sizeof (UINT64);\r
+        case EFI_IFR_NUMERIC_SIZE_8:\r
+          return (UINT16)sizeof (UINT64);\r
 \r
-    default:\r
-      ASSERT (FALSE);\r
-      return 0;\r
-    }\r
+        default:\r
+          ASSERT (FALSE);\r
+          return 0;\r
+      }\r
 \r
-  case EFI_IFR_ORDERED_LIST_OP:\r
-    NextOpCodeData = OpCodeData + ((EFI_IFR_ORDERED_LIST *) OpCodeData)->Header.Length;\r
-    //\r
-    // OneOfOption must follow the orderedlist opcode.\r
-    //\r
-    ASSERT (((EFI_IFR_OP_HEADER *) NextOpCodeData)->OpCode == EFI_IFR_ONE_OF_OPTION_OP);\r
-    switch (((EFI_IFR_ONE_OF_OPTION *) NextOpCodeData)->Type) {\r
-    case EFI_IFR_TYPE_NUM_SIZE_8:\r
-      return (UINT16) sizeof (UINT8) * ((EFI_IFR_ORDERED_LIST *) OpCodeData)->MaxContainers;\r
+    case EFI_IFR_ORDERED_LIST_OP:\r
+      NextOpCodeData = OpCodeData + ((EFI_IFR_ORDERED_LIST *)OpCodeData)->Header.Length;\r
+      //\r
+      // OneOfOption must follow the orderedlist opcode.\r
+      //\r
+      ASSERT (((EFI_IFR_OP_HEADER *)NextOpCodeData)->OpCode == EFI_IFR_ONE_OF_OPTION_OP);\r
+      switch (((EFI_IFR_ONE_OF_OPTION *)NextOpCodeData)->Type) {\r
+        case EFI_IFR_TYPE_NUM_SIZE_8:\r
+          return (UINT16)sizeof (UINT8) * ((EFI_IFR_ORDERED_LIST *)OpCodeData)->MaxContainers;\r
 \r
-    case EFI_IFR_TYPE_NUM_SIZE_16:\r
-      return (UINT16) sizeof (UINT16) * ((EFI_IFR_ORDERED_LIST *) OpCodeData)->MaxContainers ;\r
+        case EFI_IFR_TYPE_NUM_SIZE_16:\r
+          return (UINT16)sizeof (UINT16) * ((EFI_IFR_ORDERED_LIST *)OpCodeData)->MaxContainers;\r
 \r
-    case EFI_IFR_TYPE_NUM_SIZE_32:\r
-      return (UINT16) sizeof (UINT32) * ((EFI_IFR_ORDERED_LIST *) OpCodeData)->MaxContainers;\r
+        case EFI_IFR_TYPE_NUM_SIZE_32:\r
+          return (UINT16)sizeof (UINT32) * ((EFI_IFR_ORDERED_LIST *)OpCodeData)->MaxContainers;\r
 \r
-    case EFI_IFR_TYPE_NUM_SIZE_64:\r
-      return (UINT16) sizeof (UINT64) * ((EFI_IFR_ORDERED_LIST *) OpCodeData)->MaxContainers;\r
+        case EFI_IFR_TYPE_NUM_SIZE_64:\r
+          return (UINT16)sizeof (UINT64) * ((EFI_IFR_ORDERED_LIST *)OpCodeData)->MaxContainers;\r
 \r
-    default:\r
-      ASSERT (FALSE);\r
-      return 0;\r
-    }\r
+        default:\r
+          ASSERT (FALSE);\r
+          return 0;\r
+      }\r
 \r
-  case EFI_IFR_CHECKBOX_OP:\r
-    return (UINT16) sizeof (BOOLEAN);\r
+    case EFI_IFR_CHECKBOX_OP:\r
+      return (UINT16)sizeof (BOOLEAN);\r
 \r
-  case EFI_IFR_PASSWORD_OP:\r
-    return (UINT16)((UINTN) ((EFI_IFR_PASSWORD *) OpCodeData)->MaxSize * sizeof (CHAR16));\r
+    case EFI_IFR_PASSWORD_OP:\r
+      return (UINT16)((UINTN)((EFI_IFR_PASSWORD *)OpCodeData)->MaxSize * sizeof (CHAR16));\r
 \r
-  case EFI_IFR_STRING_OP:\r
-    return (UINT16)((UINTN) ((EFI_IFR_STRING *) OpCodeData)->MaxSize * sizeof (CHAR16));\r
+    case EFI_IFR_STRING_OP:\r
+      return (UINT16)((UINTN)((EFI_IFR_STRING *)OpCodeData)->MaxSize * sizeof (CHAR16));\r
 \r
-  case EFI_IFR_DATE_OP:\r
-    return (UINT16) sizeof (EFI_HII_DATE);\r
+    case EFI_IFR_DATE_OP:\r
+      return (UINT16)sizeof (EFI_HII_DATE);\r
 \r
-  case EFI_IFR_TIME_OP:\r
-    return (UINT16) sizeof (EFI_HII_TIME);\r
+    case EFI_IFR_TIME_OP:\r
+      return (UINT16)sizeof (EFI_HII_TIME);\r
 \r
-  default:\r
-    ASSERT (FALSE);\r
-    return 0;\r
+    default:\r
+      ASSERT (FALSE);\r
+      return 0;\r
   }\r
 }\r
 \r
@@ -1632,8 +1685,8 @@ InternalLowerConfigString (
       Lower = TRUE;\r
     } else if (*String == L'&') {\r
       Lower = FALSE;\r
-    } else if (Lower && *String >= L'A' && *String <= L'F') {\r
-      *String = (CHAR16) (*String - L'A' + L'a');\r
+    } else if (Lower && (*String >= L'A') && (*String <= L'F')) {\r
+      *String = (CHAR16)(*String - L'A' + L'a');\r
     }\r
   }\r
 \r
@@ -1659,8 +1712,8 @@ InternalLowerConfigString (
 **/\r
 EFI_STRING\r
 ConstructConfigHdr (\r
-  IN UINT8           *OpCodeData,\r
-  IN EFI_HANDLE      DriverHandle\r
+  IN UINT8       *OpCodeData,\r
+  IN EFI_HANDLE  DriverHandle\r
   )\r
 {\r
   UINTN                     NameLength;\r
@@ -1679,31 +1732,31 @@ ConstructConfigHdr (
   ASSERT (OpCodeData != NULL);\r
 \r
   switch (((EFI_IFR_OP_HEADER *)OpCodeData)->OpCode) {\r
-  case EFI_IFR_VARSTORE_OP:\r
-    Guid      = (EFI_GUID *)(UINTN *)&((EFI_IFR_VARSTORE *) OpCodeData)->Guid;\r
-    AsciiName = (CHAR8 *) ((EFI_IFR_VARSTORE *) OpCodeData)->Name;\r
-    break;\r
+    case EFI_IFR_VARSTORE_OP:\r
+      Guid      = (EFI_GUID *)(UINTN *)&((EFI_IFR_VARSTORE *)OpCodeData)->Guid;\r
+      AsciiName = (CHAR8 *)((EFI_IFR_VARSTORE *)OpCodeData)->Name;\r
+      break;\r
 \r
-  case EFI_IFR_VARSTORE_NAME_VALUE_OP:\r
-    Guid      = (EFI_GUID *)(UINTN *)&((EFI_IFR_VARSTORE_NAME_VALUE *) OpCodeData)->Guid;\r
-    AsciiName = NULL;\r
-    break;\r
+    case EFI_IFR_VARSTORE_NAME_VALUE_OP:\r
+      Guid      = (EFI_GUID *)(UINTN *)&((EFI_IFR_VARSTORE_NAME_VALUE *)OpCodeData)->Guid;\r
+      AsciiName = NULL;\r
+      break;\r
 \r
-  case EFI_IFR_VARSTORE_EFI_OP:\r
-    Guid      = (EFI_GUID *)(UINTN *)&((EFI_IFR_VARSTORE_EFI *) OpCodeData)->Guid;\r
-    AsciiName = (CHAR8 *) ((EFI_IFR_VARSTORE_EFI *) OpCodeData)->Name;\r
-    break;\r
+    case EFI_IFR_VARSTORE_EFI_OP:\r
+      Guid      = (EFI_GUID *)(UINTN *)&((EFI_IFR_VARSTORE_EFI *)OpCodeData)->Guid;\r
+      AsciiName = (CHAR8 *)((EFI_IFR_VARSTORE_EFI *)OpCodeData)->Name;\r
+      break;\r
 \r
-  default:\r
-    ASSERT (FALSE);\r
-    Guid      = NULL;\r
-    AsciiName = NULL;\r
-    break;\r
+    default:\r
+      ASSERT (FALSE);\r
+      Guid      = NULL;\r
+      AsciiName = NULL;\r
+      break;\r
   }\r
 \r
   if (AsciiName != NULL) {\r
     NameSize = AsciiStrSize (AsciiName);\r
-    Name = AllocateZeroPool (NameSize * sizeof (CHAR16));\r
+    Name     = AllocateZeroPool (NameSize * sizeof (CHAR16));\r
     ASSERT (Name != NULL);\r
     AsciiStrToUnicodeStrS (AsciiName, Name, NameSize);\r
   } else {\r
@@ -1719,7 +1772,7 @@ ConstructConfigHdr (
     NameLength = StrLen (Name);\r
   }\r
 \r
-  DevicePath = NULL;\r
+  DevicePath     = NULL;\r
   DevicePathSize = 0;\r
   //\r
   // Retrieve DevicePath Protocol associated with DriverHandle\r
@@ -1729,6 +1782,7 @@ ConstructConfigHdr (
     if (DevicePath == NULL) {\r
       return NULL;\r
     }\r
+\r
     //\r
     // Compute the size of the device path in bytes\r
     //\r
@@ -1750,7 +1804,7 @@ ConstructConfigHdr (
   //\r
   StrCpyS (String, MaxLen, L"GUID=");\r
   ReturnString = String;\r
-  String += StrLen (String);\r
+  String      += StrLen (String);\r
 \r
   if (Guid != NULL) {\r
     //\r
@@ -1778,7 +1832,7 @@ ConstructConfigHdr (
     //\r
     // Append Name converted to <Char>NameLength\r
     //\r
-    for (; *Name != L'\0'; Name++) {\r
+    for ( ; *Name != L'\0'; Name++) {\r
       UnicodeValueToStringS (\r
         String,\r
         MaxLen * sizeof (CHAR16) - ((UINTN)String - (UINTN)ReturnString),\r
@@ -1833,13 +1887,13 @@ ConstructConfigHdr (
 **/\r
 EFI_STRING\r
 ConstructRequestElement (\r
-  IN CHAR16      *Name,\r
-  IN UINT16      Offset,\r
-  IN UINT16      Width\r
+  IN CHAR16  *Name,\r
+  IN UINT16  Offset,\r
+  IN UINT16  Width\r
   )\r
 {\r
-  CHAR16    *StringPtr;\r
-  UINTN     Length;\r
+  CHAR16  *StringPtr;\r
+  UINTN   Length;\r
 \r
   if (Name != NULL) {\r
     //\r
@@ -1874,7 +1928,7 @@ ConstructRequestElement (
       (StrLen (Name) + 1) * sizeof (CHAR16),\r
       L"%s",\r
       Name\r
-    );\r
+      );\r
   } else {\r
     //\r
     // Append OFFSET=XXXX&WIDTH=YYYY\0\r
@@ -1885,7 +1939,7 @@ ConstructRequestElement (
       L"OFFSET=%04X&WIDTH=%04X",\r
       Offset,\r
       Width\r
-    );\r
+      );\r
   }\r
 \r
   return StringPtr;\r
@@ -1902,8 +1956,8 @@ ConstructRequestElement (
 **/\r
 CHAR16 *\r
 GetNameFromId (\r
-  IN HII_DATABASE_RECORD   *DatabaseRecord,\r
-  IN EFI_STRING_ID         NameId\r
+  IN HII_DATABASE_RECORD  *DatabaseRecord,\r
+  IN EFI_STRING_ID        NameId\r
   )\r
 {\r
   CHAR16      *Name;\r
@@ -1914,13 +1968,13 @@ GetNameFromId (
   CHAR16      TempString;\r
   EFI_STATUS  Status;\r
 \r
-  Name = NULL;\r
-  BestLanguage = NULL;\r
-  PlatformLanguage = NULL;\r
+  Name               = NULL;\r
+  BestLanguage       = NULL;\r
+  PlatformLanguage   = NULL;\r
   SupportedLanguages = NULL;\r
 \r
-  GetEfiGlobalVariable2 (L"PlatformLang", (VOID**)&PlatformLanguage, NULL);\r
-  SupportedLanguages = GetSupportedLanguages(DatabaseRecord->Handle);\r
+  GetEfiGlobalVariable2 (L"PlatformLang", (VOID **)&PlatformLanguage, NULL);\r
+  SupportedLanguages = GetSupportedLanguages (DatabaseRecord->Handle);\r
 \r
   //\r
   // Get the best matching language from SupportedLanguages\r
@@ -1938,15 +1992,15 @@ GetNameFromId (
   }\r
 \r
   StringSize = 0;\r
-  Status = mPrivate.HiiString.GetString (\r
-                                 &mPrivate.HiiString,\r
-                                 BestLanguage,\r
-                                 DatabaseRecord->Handle,\r
-                                 NameId,\r
-                                 &TempString,\r
-                                 &StringSize,\r
-                                 NULL\r
-                                 );\r
+  Status     = mPrivate.HiiString.GetString (\r
+                                    &mPrivate.HiiString,\r
+                                    BestLanguage,\r
+                                    DatabaseRecord->Handle,\r
+                                    NameId,\r
+                                    &TempString,\r
+                                    &StringSize,\r
+                                    NULL\r
+                                    );\r
   if (Status != EFI_BUFFER_TOO_SMALL) {\r
     goto Done;\r
   }\r
@@ -1957,14 +2011,14 @@ GetNameFromId (
   }\r
 \r
   Status = mPrivate.HiiString.GetString (\r
-                          &mPrivate.HiiString,\r
-                          BestLanguage,\r
-                          DatabaseRecord->Handle,\r
-                          NameId,\r
-                          Name,\r
-                          &StringSize,\r
-                          NULL\r
-                          );\r
+                                &mPrivate.HiiString,\r
+                                BestLanguage,\r
+                                DatabaseRecord->Handle,\r
+                                NameId,\r
+                                Name,\r
+                                &StringSize,\r
+                                NULL\r
+                                );\r
 \r
   if (EFI_ERROR (Status)) {\r
     FreePool (Name);\r
@@ -1974,11 +2028,13 @@ GetNameFromId (
 \r
 Done:\r
   if (SupportedLanguages != NULL) {\r
-    FreePool(SupportedLanguages);\r
+    FreePool (SupportedLanguages);\r
   }\r
+\r
   if (BestLanguage != NULL) {\r
     FreePool (BestLanguage);\r
   }\r
+\r
   if (PlatformLanguage != NULL) {\r
     FreePool (PlatformLanguage);\r
   }\r
@@ -2003,10 +2059,10 @@ Done:
 **/\r
 EFI_STATUS\r
 ExtractConfigRequest (\r
-  IN  HII_DATABASE_RECORD   *DatabaseRecord,\r
-  IN  EFI_STRING_ID         KeywordStrId,\r
-  OUT UINT8                 **OpCodeData,\r
-  OUT EFI_STRING            *ConfigRequest\r
+  IN  HII_DATABASE_RECORD  *DatabaseRecord,\r
+  IN  EFI_STRING_ID        KeywordStrId,\r
+  OUT UINT8                **OpCodeData,\r
+  OUT EFI_STRING           *ConfigRequest\r
   )\r
 {\r
   LIST_ENTRY                          *Link;\r
@@ -2041,7 +2097,7 @@ ExtractConfigRequest (
     OpCode = FindQuestionFromStringId (FormPackage, KeywordStrId);\r
     if (OpCode != NULL) {\r
       *OpCodeData = OpCode;\r
-      Header = (EFI_IFR_QUESTION_HEADER *) (OpCode + sizeof (EFI_IFR_OP_HEADER));\r
+      Header      = (EFI_IFR_QUESTION_HEADER *)(OpCode + sizeof (EFI_IFR_OP_HEADER));\r
       //\r
       // Header->VarStoreId == 0 means no storage for this question.\r
       //\r
@@ -2051,23 +2107,25 @@ ExtractConfigRequest (
       Storage = FindStorageFromVarId (FormPackage, Header->VarStoreId);\r
       ASSERT (Storage != NULL);\r
 \r
-      if (((EFI_IFR_OP_HEADER *) Storage)->OpCode == EFI_IFR_VARSTORE_NAME_VALUE_OP) {\r
+      if (((EFI_IFR_OP_HEADER *)Storage)->OpCode == EFI_IFR_VARSTORE_NAME_VALUE_OP) {\r
         Name = GetNameFromId (DatabaseRecord, Header->VarStoreInfo.VarName);\r
       } else {\r
         Offset = Header->VarStoreInfo.VarOffset;\r
-        Width = GetWidth (OpCode);\r
+        Width  = GetWidth (OpCode);\r
       }\r
-      RequestElement = ConstructRequestElement(Name, Offset, Width);\r
-      ConfigHdr = ConstructConfigHdr(Storage, DatabaseRecord->DriverHandle);\r
+\r
+      RequestElement = ConstructRequestElement (Name, Offset, Width);\r
+      ConfigHdr      = ConstructConfigHdr (Storage, DatabaseRecord->DriverHandle);\r
       ASSERT (ConfigHdr != NULL);\r
 \r
-      MaxLen = StrLen (ConfigHdr) + 1 + StrLen(RequestElement) + 1;\r
+      MaxLen         = StrLen (ConfigHdr) + 1 + StrLen (RequestElement) + 1;\r
       *ConfigRequest = AllocatePool (MaxLen * sizeof (CHAR16));\r
       if (*ConfigRequest == NULL) {\r
         FreePool (ConfigHdr);\r
         FreePool (RequestElement);\r
         return EFI_OUT_OF_RESOURCES;\r
       }\r
+\r
       StringPtr = *ConfigRequest;\r
 \r
       StrCpyS (StringPtr, MaxLen, ConfigHdr);\r
@@ -2105,11 +2163,11 @@ ExtractConfigRequest (
 **/\r
 EFI_STATUS\r
 ExtractConfigResp (\r
-  IN  HII_DATABASE_RECORD   *DatabaseRecord,\r
-  IN  EFI_STRING_ID         KeywordStrId,\r
-  IN  EFI_STRING            ValueElement,\r
-  OUT UINT8                 **OpCodeData,\r
-  OUT EFI_STRING            *ConfigResp\r
+  IN  HII_DATABASE_RECORD  *DatabaseRecord,\r
+  IN  EFI_STRING_ID        KeywordStrId,\r
+  IN  EFI_STRING           ValueElement,\r
+  OUT UINT8                **OpCodeData,\r
+  OUT EFI_STRING           *ConfigResp\r
   )\r
 {\r
   LIST_ENTRY                          *Link;\r
@@ -2144,7 +2202,7 @@ ExtractConfigResp (
     OpCode = FindQuestionFromStringId (FormPackage, KeywordStrId);\r
     if (OpCode != NULL) {\r
       *OpCodeData = OpCode;\r
-      Header = (EFI_IFR_QUESTION_HEADER *) (OpCode + sizeof (EFI_IFR_OP_HEADER));\r
+      Header      = (EFI_IFR_QUESTION_HEADER *)(OpCode + sizeof (EFI_IFR_OP_HEADER));\r
       //\r
       // Header->VarStoreId == 0 means no storage for this question.\r
       //\r
@@ -2154,31 +2212,32 @@ ExtractConfigResp (
       Storage = FindStorageFromVarId (FormPackage, Header->VarStoreId);\r
       ASSERT (Storage != NULL);\r
 \r
-      if (((EFI_IFR_OP_HEADER *) Storage)->OpCode == EFI_IFR_VARSTORE_NAME_VALUE_OP) {\r
+      if (((EFI_IFR_OP_HEADER *)Storage)->OpCode == EFI_IFR_VARSTORE_NAME_VALUE_OP) {\r
         Name = GetNameFromId (DatabaseRecord, Header->VarStoreInfo.VarName);\r
       } else {\r
         Offset = Header->VarStoreInfo.VarOffset;\r
         Width  = GetWidth (OpCode);\r
       }\r
-      RequestElement = ConstructRequestElement(Name, Offset, Width);\r
 \r
-      ConfigHdr = ConstructConfigHdr(Storage, DatabaseRecord->DriverHandle);\r
+      RequestElement = ConstructRequestElement (Name, Offset, Width);\r
+\r
+      ConfigHdr = ConstructConfigHdr (Storage, DatabaseRecord->DriverHandle);\r
       ASSERT (ConfigHdr != NULL);\r
 \r
-      MaxLen = StrLen (ConfigHdr) + 1 + StrLen(RequestElement) + 1 + StrLen (L"VALUE=") + StrLen(ValueElement) + 1;\r
+      MaxLen      = StrLen (ConfigHdr) + 1 + StrLen (RequestElement) + 1 + StrLen (L"VALUE=") + StrLen (ValueElement) + 1;\r
       *ConfigResp = AllocatePool (MaxLen * sizeof (CHAR16));\r
       if (*ConfigResp == NULL) {\r
         FreePool (ConfigHdr);\r
         FreePool (RequestElement);\r
         return EFI_OUT_OF_RESOURCES;\r
       }\r
+\r
       StringPtr = *ConfigResp;\r
 \r
       StrCpyS (StringPtr, MaxLen, ConfigHdr);\r
 \r
       StrCatS (StringPtr, MaxLen, L"&");\r
 \r
-\r
       StrCatS (StringPtr, MaxLen, RequestElement);\r
 \r
       StrCatS (StringPtr, MaxLen, L"&");\r
@@ -2212,24 +2271,24 @@ ExtractConfigResp (
 **/\r
 EFI_STATUS\r
 ExtractValueFromDriver (\r
-  IN  CHAR16           *ConfigRequest,\r
-  OUT CHAR16           **ValueElement\r
+  IN  CHAR16  *ConfigRequest,\r
+  OUT CHAR16  **ValueElement\r
   )\r
 {\r
-  EFI_STATUS   Status;\r
-  EFI_STRING   Result;\r
-  EFI_STRING   Progress;\r
-  CHAR16       *StringPtr;\r
-  CHAR16       *StringEnd;\r
+  EFI_STATUS  Status;\r
+  EFI_STRING  Result;\r
+  EFI_STRING  Progress;\r
+  CHAR16      *StringPtr;\r
+  CHAR16      *StringEnd;\r
 \r
   ASSERT ((ConfigRequest != NULL) && (ValueElement != NULL));\r
 \r
   Status = mPrivate.ConfigRouting.ExtractConfig (\r
-                      &mPrivate.ConfigRouting,\r
-                      (EFI_STRING) ConfigRequest,\r
-                      &Progress,\r
-                      &Result\r
-                      );\r
+                                    &mPrivate.ConfigRouting,\r
+                                    (EFI_STRING)ConfigRequest,\r
+                                    &Progress,\r
+                                    &Result\r
+                                    );\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
@@ -2252,6 +2311,7 @@ ExtractValueFromDriver (
   if (StringEnd != NULL) {\r
     *StringEnd = L'&';\r
   }\r
+\r
   FreePool (Result);\r
 \r
   return EFI_SUCCESS;\r
@@ -2276,20 +2336,20 @@ ExtractValueFromDriver (
 **/\r
 EFI_STATUS\r
 GetStringIdFromDatabase (\r
-  IN  EFI_DEVICE_PATH_PROTOCOL            **DevicePath,\r
-  IN  CHAR8                               **NameSpace,\r
-  IN  CHAR16                              *KeywordData,\r
-  OUT UINT32                              *ProgressErr,\r
-  OUT EFI_STRING_ID                       *KeywordStringId,\r
-  OUT HII_DATABASE_RECORD                 **DataBaseRecord\r
- )\r
+  IN  EFI_DEVICE_PATH_PROTOCOL  **DevicePath,\r
+  IN  CHAR8                     **NameSpace,\r
+  IN  CHAR16                    *KeywordData,\r
+  OUT UINT32                    *ProgressErr,\r
+  OUT EFI_STRING_ID             *KeywordStringId,\r
+  OUT HII_DATABASE_RECORD       **DataBaseRecord\r
 )\r
 {\r
-  HII_DATABASE_RECORD                 *Record;\r
-  LIST_ENTRY                          *Link;\r
-  BOOLEAN                             FindNameSpace;\r
-  EFI_DEVICE_PATH_PROTOCOL            *DestDevicePath;\r
-  UINT8                               *DevicePathPkg;\r
-  UINTN                               DevicePathSize;\r
+  HII_DATABASE_RECORD       *Record;\r
+  LIST_ENTRY                *Link;\r
+  BOOLEAN                   FindNameSpace;\r
+  EFI_DEVICE_PATH_PROTOCOL  *DestDevicePath;\r
+  UINT8                     *DevicePathPkg;\r
+  UINTN                     DevicePathSize;\r
 \r
   ASSERT ((NameSpace != NULL) && (KeywordData != NULL) && (ProgressErr != NULL) && (KeywordStringId != NULL) && (DataBaseRecord != NULL));\r
 \r
@@ -2299,7 +2359,7 @@ GetStringIdFromDatabase (
     //\r
     // Get DataBaseRecord from device path protocol.\r
     //\r
-    Record = GetRecordFromDevicePath(*DevicePath);\r
+    Record = GetRecordFromDevicePath (*DevicePath);\r
     if (Record == NULL) {\r
       //\r
       // Can't find the DatabaseRecord base on the input device path info.\r
@@ -2314,16 +2374,16 @@ GetStringIdFromDatabase (
     //\r
     *ProgressErr = GetStringIdFromRecord (Record, NameSpace, KeywordData, KeywordStringId);\r
     switch (*ProgressErr) {\r
-    case KEYWORD_HANDLER_NO_ERROR:\r
-      *DataBaseRecord = Record;\r
-      return EFI_SUCCESS;\r
+      case KEYWORD_HANDLER_NO_ERROR:\r
+        *DataBaseRecord = Record;\r
+        return EFI_SUCCESS;\r
 \r
-    case KEYWORD_HANDLER_NAMESPACE_ID_NOT_FOUND:\r
-      return EFI_INVALID_PARAMETER;\r
+      case KEYWORD_HANDLER_NAMESPACE_ID_NOT_FOUND:\r
+        return EFI_INVALID_PARAMETER;\r
 \r
-    default:\r
-      ASSERT (*ProgressErr == KEYWORD_HANDLER_KEYWORD_NOT_FOUND);\r
-      return EFI_NOT_FOUND;\r
+      default:\r
+        ASSERT (*ProgressErr == KEYWORD_HANDLER_KEYWORD_NOT_FOUND);\r
+        return EFI_NOT_FOUND;\r
     }\r
   } else {\r
     //\r
@@ -2337,9 +2397,9 @@ GetStringIdFromDatabase (
         *DataBaseRecord = Record;\r
 \r
         if ((DevicePathPkg = Record->PackageList->DevicePathPkg) != NULL) {\r
-          DestDevicePath = (EFI_DEVICE_PATH_PROTOCOL *) (DevicePathPkg + sizeof (EFI_HII_PACKAGE_HEADER));\r
-          DevicePathSize = GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) DestDevicePath);\r
-          *DevicePath = AllocateCopyPool (DevicePathSize, DestDevicePath);\r
+          DestDevicePath = (EFI_DEVICE_PATH_PROTOCOL *)(DevicePathPkg + sizeof (EFI_HII_PACKAGE_HEADER));\r
+          DevicePathSize = GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *)DestDevicePath);\r
+          *DevicePath    = AllocateCopyPool (DevicePathSize, DestDevicePath);\r
           if (*DevicePath == NULL) {\r
             return EFI_OUT_OF_RESOURCES;\r
           }\r
@@ -2388,19 +2448,19 @@ GetStringIdFromDatabase (
 **/\r
 EFI_STATUS\r
 GenerateKeywordResp (\r
-  IN  CHAR8                          *NameSpace,\r
-  IN  EFI_DEVICE_PATH_PROTOCOL       *DevicePath,\r
-  IN  EFI_STRING                     KeywordData,\r
-  IN  EFI_STRING                     ValueStr,\r
-  IN  BOOLEAN                        ReadOnly,\r
-  OUT EFI_STRING                     *KeywordResp\r
+  IN  CHAR8                     *NameSpace,\r
+  IN  EFI_DEVICE_PATH_PROTOCOL  *DevicePath,\r
+  IN  EFI_STRING                KeywordData,\r
+  IN  EFI_STRING                ValueStr,\r
+  IN  BOOLEAN                   ReadOnly,\r
+  OUT EFI_STRING                *KeywordResp\r
   )\r
 {\r
-  UINTN     RespStrLen;\r
-  CHAR16    *RespStr;\r
-  CHAR16    *PathHdr;\r
-  CHAR16    *UnicodeNameSpace;\r
-  UINTN     NameSpaceLength;\r
+  UINTN   RespStrLen;\r
+  CHAR16  *RespStr;\r
+  CHAR16  *PathHdr;\r
+  CHAR16  *UnicodeNameSpace;\r
+  UINTN   NameSpaceLength;\r
 \r
   ASSERT ((NameSpace != NULL) && (DevicePath != NULL) && (KeywordData != NULL) && (ValueStr != NULL) && (KeywordResp != NULL));\r
 \r
@@ -2411,12 +2471,13 @@ GenerateKeywordResp (
   // 1.1 NameSpaceId size.\r
   // 'NAMESPACE='<String>\r
   //\r
-  NameSpaceLength = AsciiStrLen (NameSpace);\r
-  RespStrLen = 10 + NameSpaceLength;\r
+  NameSpaceLength  = AsciiStrLen (NameSpace);\r
+  RespStrLen       = 10 + NameSpaceLength;\r
   UnicodeNameSpace = AllocatePool ((NameSpaceLength + 1) * sizeof (CHAR16));\r
   if (UnicodeNameSpace == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
+\r
   AsciiStrToUnicodeStrS (NameSpace, UnicodeNameSpace, NameSpaceLength + 1);\r
 \r
   //\r
@@ -2426,8 +2487,8 @@ GenerateKeywordResp (
   //\r
   GenerateSubStr (\r
     L"&PATH=",\r
-    GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) DevicePath),\r
-    (VOID *) DevicePath,\r
+    GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *)DevicePath),\r
+    (VOID *)DevicePath,\r
     1,\r
     &PathHdr\r
     );\r
@@ -2456,7 +2517,7 @@ GenerateKeywordResp (
   //\r
   // 2. Allocate the buffer and create the KeywordResp string include '\0'.\r
   //\r
-  RespStrLen += 1;\r
+  RespStrLen  += 1;\r
   *KeywordResp = AllocatePool (RespStrLen * sizeof (CHAR16));\r
   if (*KeywordResp == NULL) {\r
     if (UnicodeNameSpace != NULL) {\r
@@ -2465,6 +2526,7 @@ GenerateKeywordResp (
 \r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
+\r
   RespStr = *KeywordResp;\r
 \r
   //\r
@@ -2501,6 +2563,7 @@ GenerateKeywordResp (
   if (UnicodeNameSpace != NULL) {\r
     FreePool (UnicodeNameSpace);\r
   }\r
+\r
   if (PathHdr != NULL) {\r
     FreePool (PathHdr);\r
   }\r
@@ -2522,8 +2585,8 @@ GenerateKeywordResp (
 **/\r
 EFI_STATUS\r
 MergeToMultiKeywordResp (\r
-  IN OUT EFI_STRING         *MultiKeywordResp,\r
-  IN     EFI_STRING         *KeywordResp\r
+  IN OUT EFI_STRING  *MultiKeywordResp,\r
+  IN     EFI_STRING  *KeywordResp\r
   )\r
 {\r
   UINTN       MultiKeywordRespLen;\r
@@ -2531,7 +2594,7 @@ MergeToMultiKeywordResp (
 \r
   if (*MultiKeywordResp == NULL) {\r
     *MultiKeywordResp = *KeywordResp;\r
-    *KeywordResp = NULL;\r
+    *KeywordResp      = NULL;\r
     return EFI_SUCCESS;\r
   }\r
 \r
@@ -2573,9 +2636,9 @@ MergeToMultiKeywordResp (
 **/\r
 EFI_STATUS\r
 EnumerateAllKeywords (\r
-  IN  CHAR8             *NameSpace,\r
-  OUT EFI_STRING        *MultiResp,\r
-  OUT UINT32            *ProgressErr\r
+  IN  CHAR8       *NameSpace,\r
+  OUT EFI_STRING  *MultiResp,\r
+  OUT UINT32      *ProgressErr\r
   )\r
 {\r
   LIST_ENTRY                          *Link;\r
@@ -2597,14 +2660,14 @@ EnumerateAllKeywords (
   BOOLEAN                             ReadOnly;\r
   BOOLEAN                             FindKeywordPackages;\r
 \r
-  DataBaseRecord   = NULL;\r
-  Status           = EFI_SUCCESS;\r
-  MultiKeywordResp = NULL;\r
-  DevicePath       = NULL;\r
-  LocalNameSpace   = NULL;\r
-  ConfigRequest    = NULL;\r
-  ValueElement     = NULL;\r
-  KeywordResp      = NULL;\r
+  DataBaseRecord      = NULL;\r
+  Status              = EFI_SUCCESS;\r
+  MultiKeywordResp    = NULL;\r
+  DevicePath          = NULL;\r
+  LocalNameSpace      = NULL;\r
+  ConfigRequest       = NULL;\r
+  ValueElement        = NULL;\r
+  KeywordResp         = NULL;\r
   FindKeywordPackages = FALSE;\r
 \r
   if (NameSpace == NULL) {\r
@@ -2619,6 +2682,7 @@ EnumerateAllKeywords (
     if ((DevicePathPkg = DataBaseRecord->PackageList->DevicePathPkg) != NULL) {\r
       DevicePath = DevicePathPkg + sizeof (EFI_HII_PACKAGE_HEADER);\r
     }\r
+\r
     PackageListNode = DataBaseRecord->PackageList;\r
 \r
     for (StringLink = PackageListNode->StringPkgHdr.ForwardLink; StringLink != &PackageListNode->StringPkgHdr; StringLink = StringLink->ForwardLink) {\r
@@ -2627,7 +2691,7 @@ EnumerateAllKeywords (
       //\r
       // Check whether has keyword string package.\r
       //\r
-      if (AsciiStrnCmp(NameSpace, StringPackage->StringPkgHdr->Language, AsciiStrLen (NameSpace)) == 0) {\r
+      if (AsciiStrnCmp (NameSpace, StringPackage->StringPkgHdr->Language, AsciiStrLen (NameSpace)) == 0) {\r
         FindKeywordPackages = TRUE;\r
         //\r
         // Keep the NameSpace string.\r
@@ -2662,7 +2726,7 @@ EnumerateAllKeywords (
           //\r
           // 3.4 Extract Value for the input keyword.\r
           //\r
-          Status = ExtractValueFromDriver(ConfigRequest, &ValueElement);\r
+          Status = ExtractValueFromDriver (ConfigRequest, &ValueElement);\r
           if (EFI_ERROR (Status)) {\r
             if (Status != EFI_OUT_OF_RESOURCES) {\r
               //\r
@@ -2670,6 +2734,7 @@ EnumerateAllKeywords (
               //\r
               goto Error;\r
             }\r
+\r
             //\r
             // If EFI_OUT_OF_RESOURCES error occur, no need to continue.\r
             //\r
@@ -2679,13 +2744,13 @@ EnumerateAllKeywords (
           //\r
           // Extract readonly flag from opcode.\r
           //\r
-          ReadOnly = ExtractReadOnlyFromOpCode(OpCode);\r
+          ReadOnly = ExtractReadOnlyFromOpCode (OpCode);\r
 \r
           //\r
           // 5. Generate KeywordResp string.\r
           //\r
           ASSERT (DevicePath != NULL);\r
-          Status = GenerateKeywordResp(LocalNameSpace, (EFI_DEVICE_PATH_PROTOCOL *)DevicePath, KeywordData, ValueElement, ReadOnly, &KeywordResp);\r
+          Status = GenerateKeywordResp (LocalNameSpace, (EFI_DEVICE_PATH_PROTOCOL *)DevicePath, KeywordData, ValueElement, ReadOnly, &KeywordResp);\r
           if (Status != EFI_SUCCESS) {\r
             //\r
             // If EFI_OUT_OF_RESOURCES error occur, no need to continue.\r
@@ -2696,10 +2761,11 @@ EnumerateAllKeywords (
           //\r
           // 6. Merge to the MultiKeywordResp string.\r
           //\r
-          Status = MergeToMultiKeywordResp(&MultiKeywordResp, &KeywordResp);\r
+          Status = MergeToMultiKeywordResp (&MultiKeywordResp, &KeywordResp);\r
           if (EFI_ERROR (Status)) {\r
             goto Done;\r
           }\r
+\r
 Error:\r
           //\r
           // Clean the temp buffer to later use again.\r
@@ -2708,10 +2774,12 @@ Error:
             FreePool (ConfigRequest);\r
             ConfigRequest = NULL;\r
           }\r
+\r
           if (ValueElement != NULL) {\r
             FreePool (ValueElement);\r
             ValueElement = NULL;\r
           }\r
+\r
           if (KeywordResp != NULL) {\r
             FreePool (KeywordResp);\r
             KeywordResp = NULL;\r
@@ -2739,15 +2807,18 @@ Error:
   } else {\r
     Status = EFI_SUCCESS;\r
   }\r
+\r
   *MultiResp = MultiKeywordResp;\r
 \r
 Done:\r
   if (LocalNameSpace != NULL) {\r
     FreePool (LocalNameSpace);\r
   }\r
+\r
   if (ConfigRequest != NULL) {\r
     FreePool (ConfigRequest);\r
   }\r
+\r
   if (ValueElement != NULL) {\r
     FreePool (ValueElement);\r
   }\r
@@ -2817,37 +2888,37 @@ Done:
 EFI_STATUS\r
 EFIAPI\r
 EfiConfigKeywordHandlerSetData (\r
-  IN EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL *This,\r
-  IN CONST EFI_STRING                    KeywordString,\r
-  OUT EFI_STRING                         *Progress,\r
-  OUT UINT32                             *ProgressErr\r
+  IN EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL  *This,\r
+  IN CONST EFI_STRING                     KeywordString,\r
+  OUT EFI_STRING                          *Progress,\r
+  OUT UINT32                              *ProgressErr\r
   )\r
 {\r
-  CHAR8                               *NameSpace;\r
-  EFI_STATUS                          Status;\r
-  CHAR16                              *StringPtr;\r
-  EFI_DEVICE_PATH_PROTOCOL            *DevicePath;\r
-  CHAR16                              *NextStringPtr;\r
-  CHAR16                              *KeywordData;\r
-  EFI_STRING_ID                       KeywordStringId;\r
-  UINT32                              RetVal;\r
-  HII_DATABASE_RECORD                 *DataBaseRecord;\r
-  UINT8                               *OpCode;\r
-  CHAR16                              *ConfigResp;\r
-  CHAR16                              *MultiConfigResp;\r
-  CHAR16                              *ValueElement;\r
-  BOOLEAN                             ReadOnly;\r
-  EFI_STRING                          InternalProgress;\r
-  CHAR16                              *TempString;\r
-  CHAR16                              *KeywordStartPos;\r
-\r
-  if (This == NULL || Progress == NULL || ProgressErr == NULL || KeywordString == NULL) {\r
+  CHAR8                     *NameSpace;\r
+  EFI_STATUS                Status;\r
+  CHAR16                    *StringPtr;\r
+  EFI_DEVICE_PATH_PROTOCOL  *DevicePath;\r
+  CHAR16                    *NextStringPtr;\r
+  CHAR16                    *KeywordData;\r
+  EFI_STRING_ID             KeywordStringId;\r
+  UINT32                    RetVal;\r
+  HII_DATABASE_RECORD       *DataBaseRecord;\r
+  UINT8                     *OpCode;\r
+  CHAR16                    *ConfigResp;\r
+  CHAR16                    *MultiConfigResp;\r
+  CHAR16                    *ValueElement;\r
+  BOOLEAN                   ReadOnly;\r
+  EFI_STRING                InternalProgress;\r
+  CHAR16                    *TempString;\r
+  CHAR16                    *KeywordStartPos;\r
+\r
+  if ((This == NULL) || (Progress == NULL) || (ProgressErr == NULL) || (KeywordString == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
-  *Progress    = KeywordString;\r
-  *ProgressErr = KEYWORD_HANDLER_UNDEFINED_PROCESSING_ERROR;\r
-  Status       = EFI_SUCCESS;\r
+  *Progress       = KeywordString;\r
+  *ProgressErr    = KEYWORD_HANDLER_UNDEFINED_PROCESSING_ERROR;\r
+  Status          = EFI_SUCCESS;\r
   MultiConfigResp = NULL;\r
   NameSpace       = NULL;\r
   DevicePath      = NULL;\r
@@ -2873,13 +2944,14 @@ EfiConfigKeywordHandlerSetData (
       *ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;\r
       goto Done;\r
     }\r
+\r
     ASSERT (NameSpace != NULL);\r
     //\r
     // 1.1 Check whether the input namespace is valid.\r
     //\r
-    if (AsciiStrnCmp(NameSpace, UEFI_CONFIG_LANG, AsciiStrLen (UEFI_CONFIG_LANG)) != 0) {\r
+    if (AsciiStrnCmp (NameSpace, UEFI_CONFIG_LANG, AsciiStrLen (UEFI_CONFIG_LANG)) != 0) {\r
       *ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;\r
-      Status = EFI_INVALID_PARAMETER;\r
+      Status       = EFI_INVALID_PARAMETER;\r
       goto Done;\r
     }\r
 \r
@@ -2893,21 +2965,23 @@ EfiConfigKeywordHandlerSetData (
       *ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;\r
       goto Done;\r
     }\r
+\r
     StringPtr = NextStringPtr;\r
 \r
     //\r
     // 3. Extract keyword from the KeywordRequest string.\r
     //\r
     KeywordStartPos = StringPtr;\r
-    Status = ExtractKeyword(StringPtr, &KeywordData, &NextStringPtr);\r
+    Status          = ExtractKeyword (StringPtr, &KeywordData, &NextStringPtr);\r
     if (EFI_ERROR (Status)) {\r
       //\r
       // Can't find Keyword base on the input device path info.\r
       //\r
       *ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;\r
-      Status = EFI_INVALID_PARAMETER;\r
+      Status       = EFI_INVALID_PARAMETER;\r
       goto Done;\r
     }\r
+\r
     StringPtr = NextStringPtr;\r
 \r
     //\r
@@ -2919,16 +2993,17 @@ EfiConfigKeywordHandlerSetData (
       // Can't find Value base on the input device path info.\r
       //\r
       *ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;\r
-      Status = EFI_INVALID_PARAMETER;\r
+      Status       = EFI_INVALID_PARAMETER;\r
       goto Done;\r
     }\r
+\r
     StringPtr = NextStringPtr;\r
 \r
     //\r
     // 5. Find READONLY tag.\r
     //\r
-    if ((StringPtr != NULL) && StrnCmp (StringPtr, L"&READONLY", StrLen (L"&READONLY")) == 0) {\r
-      ReadOnly = TRUE;\r
+    if ((StringPtr != NULL) && (StrnCmp (StringPtr, L"&READONLY", StrLen (L"&READONLY")) == 0)) {\r
+      ReadOnly   = TRUE;\r
       StringPtr += StrLen (L"&READONLY");\r
     } else {\r
       ReadOnly = FALSE;\r
@@ -2960,19 +3035,20 @@ EfiConfigKeywordHandlerSetData (
       // If not, the input KeywordString must be incorrect, return the error status to caller.\r
       //\r
       *ProgressErr = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
-      Status = EFI_INVALID_PARAMETER;\r
+      Status       = EFI_INVALID_PARAMETER;\r
       goto Done;\r
     }\r
+\r
     if (ReadOnly) {\r
       *ProgressErr = KEYWORD_HANDLER_ACCESS_NOT_PERMITTED;\r
-      Status = EFI_ACCESS_DENIED;\r
+      Status       = EFI_ACCESS_DENIED;\r
       goto Done;\r
     }\r
 \r
     //\r
     // 9. Merge to the MultiKeywordResp string.\r
     //\r
-    Status = MergeToMultiKeywordResp(&MultiConfigResp, &ConfigResp);\r
+    Status = MergeToMultiKeywordResp (&MultiConfigResp, &ConfigResp);\r
     if (EFI_ERROR (Status)) {\r
       goto Done;\r
     }\r
@@ -2984,25 +3060,26 @@ EfiConfigKeywordHandlerSetData (
     FreePool (DevicePath);\r
     FreePool (KeywordData);\r
     FreePool (ValueElement);\r
-    NameSpace = NULL;\r
-    DevicePath = NULL;\r
-    KeywordData = NULL;\r
+    NameSpace    = NULL;\r
+    DevicePath   = NULL;\r
+    KeywordData  = NULL;\r
     ValueElement = NULL;\r
     if (ConfigResp != NULL) {\r
       FreePool (ConfigResp);\r
       ConfigResp = NULL;\r
     }\r
+\r
     KeywordStartPos = NULL;\r
   }\r
 \r
   //\r
   // 11. Set value to driver.\r
   //\r
-  Status = mPrivate.ConfigRouting.RouteConfig(\r
-                    &mPrivate.ConfigRouting,\r
-                    (EFI_STRING) MultiConfigResp,\r
-                    &InternalProgress\r
-                    );\r
+  Status = mPrivate.ConfigRouting.RouteConfig (\r
+                                    &mPrivate.ConfigRouting,\r
+                                    (EFI_STRING)MultiConfigResp,\r
+                                    &InternalProgress\r
+                                    );\r
   if (EFI_ERROR (Status)) {\r
     Status = EFI_DEVICE_ERROR;\r
     goto Done;\r
@@ -3022,19 +3099,24 @@ Done:
   if (NameSpace != NULL) {\r
     FreePool (NameSpace);\r
   }\r
+\r
   if (DevicePath != NULL) {\r
     FreePool (DevicePath);\r
   }\r
+\r
   if (KeywordData != NULL) {\r
     FreePool (KeywordData);\r
   }\r
+\r
   if (ValueElement != NULL) {\r
     FreePool (ValueElement);\r
   }\r
+\r
   if (ConfigResp != NULL) {\r
     FreePool (ConfigResp);\r
   }\r
-  if (MultiConfigResp != NULL && MultiConfigResp != ConfigResp) {\r
+\r
+  if ((MultiConfigResp != NULL) && (MultiConfigResp != ConfigResp)) {\r
     FreePool (MultiConfigResp);\r
   }\r
 \r
@@ -3121,38 +3203,38 @@ EfiConfigKeywordHandlerGetData (
   OUT EFI_STRING                          *Results\r
   )\r
 {\r
-  CHAR8                               *NameSpace;\r
-  EFI_STATUS                          Status;\r
-  EFI_DEVICE_PATH_PROTOCOL            *DevicePath;\r
-  HII_DATABASE_RECORD                 *DataBaseRecord;\r
-  CHAR16                              *StringPtr;\r
-  CHAR16                              *NextStringPtr;\r
-  CHAR16                              *KeywordData;\r
-  EFI_STRING_ID                       KeywordStringId;\r
-  UINT8                               *OpCode;\r
-  CHAR16                              *ConfigRequest;\r
-  CHAR16                              *ValueElement;\r
-  UINT32                              RetVal;\r
-  BOOLEAN                             ReadOnly;\r
-  CHAR16                              *KeywordResp;\r
-  CHAR16                              *MultiKeywordResp;\r
-  CHAR16                              *TempString;\r
+  CHAR8                     *NameSpace;\r
+  EFI_STATUS                Status;\r
+  EFI_DEVICE_PATH_PROTOCOL  *DevicePath;\r
+  HII_DATABASE_RECORD       *DataBaseRecord;\r
+  CHAR16                    *StringPtr;\r
+  CHAR16                    *NextStringPtr;\r
+  CHAR16                    *KeywordData;\r
+  EFI_STRING_ID             KeywordStringId;\r
+  UINT8                     *OpCode;\r
+  CHAR16                    *ConfigRequest;\r
+  CHAR16                    *ValueElement;\r
+  UINT32                    RetVal;\r
+  BOOLEAN                   ReadOnly;\r
+  CHAR16                    *KeywordResp;\r
+  CHAR16                    *MultiKeywordResp;\r
+  CHAR16                    *TempString;\r
 \r
-  if (This == NULL || Progress == NULL || ProgressErr == NULL || Results == NULL) {\r
+  if ((This == NULL) || (Progress == NULL) || (ProgressErr == NULL) || (Results == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
-  *ProgressErr = KEYWORD_HANDLER_UNDEFINED_PROCESSING_ERROR;\r
-  Status       = EFI_SUCCESS;\r
-  DevicePath   = NULL;\r
-  NameSpace    = NULL;\r
-  KeywordData  = NULL;\r
-  ConfigRequest= NULL;\r
-  StringPtr    = KeywordString;\r
-  ReadOnly     = FALSE;\r
+  *ProgressErr     = KEYWORD_HANDLER_UNDEFINED_PROCESSING_ERROR;\r
+  Status           = EFI_SUCCESS;\r
+  DevicePath       = NULL;\r
+  NameSpace        = NULL;\r
+  KeywordData      = NULL;\r
+  ConfigRequest    = NULL;\r
+  StringPtr        = KeywordString;\r
+  ReadOnly         = FALSE;\r
   MultiKeywordResp = NULL;\r
   KeywordStringId  = 0;\r
-  TempString   = NULL;\r
+  TempString       = NULL;\r
 \r
   //\r
   // Use temp string to avoid changing input string buffer.\r
@@ -3161,6 +3243,7 @@ EfiConfigKeywordHandlerGetData (
     TempString = AllocateCopyPool (StrSize (NameSpaceId), NameSpaceId);\r
     ASSERT (TempString != NULL);\r
   }\r
+\r
   //\r
   // 1. Get NameSpace from NameSpaceId keyword.\r
   //\r
@@ -3169,15 +3252,17 @@ EfiConfigKeywordHandlerGetData (
     FreePool (TempString);\r
     TempString = NULL;\r
   }\r
+\r
   if (EFI_ERROR (Status)) {\r
     *ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;\r
     return Status;\r
   }\r
+\r
   //\r
   // 1.1 Check whether the input namespace is valid.\r
   //\r
-  if (NameSpace != NULL){\r
-    if (AsciiStrnCmp(NameSpace, UEFI_CONFIG_LANG, AsciiStrLen (UEFI_CONFIG_LANG)) != 0) {\r
+  if (NameSpace != NULL) {\r
+    if (AsciiStrnCmp (NameSpace, UEFI_CONFIG_LANG, AsciiStrLen (UEFI_CONFIG_LANG)) != 0) {\r
       *ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;\r
       return EFI_INVALID_PARAMETER;\r
     }\r
@@ -3200,21 +3285,21 @@ EfiConfigKeywordHandlerGetData (
         *ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;\r
         goto Done;\r
       }\r
-      StringPtr = NextStringPtr;\r
 \r
+      StringPtr = NextStringPtr;\r
 \r
       //\r
       // 3. Process Keyword section from the input keywordRequest string.\r
       //\r
       // 3.1 Extract keyword from the KeywordRequest string.\r
       //\r
-      Status = ExtractKeyword(StringPtr, &KeywordData, &NextStringPtr);\r
+      Status = ExtractKeyword (StringPtr, &KeywordData, &NextStringPtr);\r
       if (EFI_ERROR (Status)) {\r
         //\r
         // Can't find Keyword base on the input device path info.\r
         //\r
         *ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;\r
-        Status = EFI_INVALID_PARAMETER;\r
+        Status       = EFI_INVALID_PARAMETER;\r
         goto Done;\r
       }\r
 \r
@@ -3238,13 +3323,15 @@ EfiConfigKeywordHandlerGetData (
       //\r
       // 3.4 Extract Value for the input keyword.\r
       //\r
-      Status = ExtractValueFromDriver(ConfigRequest, &ValueElement);\r
+      Status = ExtractValueFromDriver (ConfigRequest, &ValueElement);\r
       if (EFI_ERROR (Status)) {\r
         if (Status != EFI_OUT_OF_RESOURCES) {\r
           Status = EFI_DEVICE_ERROR;\r
         }\r
+\r
         goto Done;\r
       }\r
+\r
       StringPtr = NextStringPtr;\r
 \r
       //\r
@@ -3253,16 +3340,16 @@ EfiConfigKeywordHandlerGetData (
       RetVal = ValidateFilter (OpCode, StringPtr, &NextStringPtr, &ReadOnly);\r
       if (RetVal != KEYWORD_HANDLER_NO_ERROR) {\r
         *ProgressErr = RetVal;\r
-        Status = EFI_INVALID_PARAMETER;\r
+        Status       = EFI_INVALID_PARAMETER;\r
         goto Done;\r
       }\r
-      StringPtr = NextStringPtr;\r
 \r
+      StringPtr = NextStringPtr;\r
 \r
       //\r
       // 5. Generate KeywordResp string.\r
       //\r
-      Status = GenerateKeywordResp(NameSpace, DevicePath, KeywordData, ValueElement, ReadOnly, &KeywordResp);\r
+      Status = GenerateKeywordResp (NameSpace, DevicePath, KeywordData, ValueElement, ReadOnly, &KeywordResp);\r
       if (Status != EFI_SUCCESS) {\r
         goto Done;\r
       }\r
@@ -3270,7 +3357,7 @@ EfiConfigKeywordHandlerGetData (
       //\r
       // 6. Merge to the MultiKeywordResp string.\r
       //\r
-      Status = MergeToMultiKeywordResp(&MultiKeywordResp, &KeywordResp);\r
+      Status = MergeToMultiKeywordResp (&MultiKeywordResp, &KeywordResp);\r
       if (EFI_ERROR (Status)) {\r
         goto Done;\r
       }\r
@@ -3287,9 +3374,9 @@ EfiConfigKeywordHandlerGetData (
       FreePool (KeywordData);\r
       FreePool (ValueElement);\r
       FreePool (ConfigRequest);\r
-      DevicePath = NULL;\r
-      KeywordData = NULL;\r
-      ValueElement = NULL;\r
+      DevicePath    = NULL;\r
+      KeywordData   = NULL;\r
+      ValueElement  = NULL;\r
       ConfigRequest = NULL;\r
       if (KeywordResp != NULL) {\r
         FreePool (KeywordResp);\r
@@ -3300,10 +3387,11 @@ EfiConfigKeywordHandlerGetData (
     //\r
     // Enumerate all keyword in the system.\r
     //\r
-    Status = EnumerateAllKeywords(NameSpace, &MultiKeywordResp, ProgressErr);\r
+    Status = EnumerateAllKeywords (NameSpace, &MultiKeywordResp, ProgressErr);\r
     if (EFI_ERROR (Status)) {\r
       goto Done;\r
     }\r
+\r
     *Results = MultiKeywordResp;\r
   }\r
 \r
@@ -3315,12 +3403,15 @@ Done:
   if (TempString != NULL) {\r
     FreePool (TempString);\r
   }\r
+\r
   if (NameSpace != NULL) {\r
     FreePool (NameSpace);\r
   }\r
+\r
   if (DevicePath != NULL) {\r
     FreePool (DevicePath);\r
   }\r
+\r
   if (KeywordData != NULL) {\r
     FreePool (KeywordData);\r
   }\r