]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / MdeModulePkg / Universal / HiiDatabaseDxe / ConfigRouting.c
index 17a914208c6d68db8b5debe6af1ae0d2017ec372..5ae6189a2843ce6fa386cc05a0717c71433f2191 100644 (file)
@@ -6,9 +6,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 \r
 **/\r
 \r
-\r
 #include "HiiDatabase.h"\r
-extern HII_DATABASE_PRIVATE_DATA mPrivate;\r
+extern HII_DATABASE_PRIVATE_DATA  mPrivate;\r
 \r
 /**\r
   Calculate the number of Unicode characters of the incoming Configuration string,\r
@@ -24,7 +23,7 @@ extern HII_DATABASE_PRIVATE_DATA mPrivate;
 **/\r
 UINTN\r
 CalculateConfigStringLen (\r
-  IN EFI_STRING                    String\r
+  IN EFI_STRING  String\r
   )\r
 {\r
   EFI_STRING  TmpPtr;\r
@@ -47,7 +46,6 @@ CalculateConfigStringLen (
   return (TmpPtr - String);\r
 }\r
 \r
-\r
 /**\r
   Convert the hex UNICODE %02x encoding of a UEFI device path to binary\r
   from <PathHdr> of <ConfigHdr>.\r
@@ -66,30 +64,32 @@ CalculateConfigStringLen (
 **/\r
 EFI_STATUS\r
 GetDevicePath (\r
-  IN  EFI_STRING                   String,\r
-  OUT UINT8                        **DevicePathData\r
+  IN  EFI_STRING  String,\r
+  OUT UINT8       **DevicePathData\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
-\r
-\r
-  if (String == NULL || DevicePathData == NULL) {\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
+  if ((String == NULL) || (DevicePathData == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
   //\r
   // Find the 'PATH=' of <PathHdr> and skip it.\r
   //\r
-  for (; (*String != 0 && StrnCmp (String, L"PATH=", StrLen (L"PATH=")) != 0); String++);\r
+  for ( ; (*String != 0 && StrnCmp (String, L"PATH=", StrLen (L"PATH=")) != 0); String++) {\r
+  }\r
+\r
   if (*String == 0) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
+\r
   //\r
   // Check whether path data does exist.\r
   //\r
@@ -97,6 +97,7 @@ GetDevicePath (
   if (*String == 0) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
+\r
   PathHdr = String;\r
 \r
   //\r
@@ -104,7 +105,9 @@ GetDevicePath (
   // 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
   // Check DevicePath Length\r
   //\r
@@ -117,7 +120,7 @@ GetDevicePath (
   // 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
@@ -126,20 +129,20 @@ GetDevicePath (
   // 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
@@ -148,6 +151,7 @@ GetDevicePath (
       FreePool (DevicePathBuffer);\r
       return EFI_NOT_FOUND;\r
     }\r
+\r
     DevicePath = NextDevicePathNode (DevicePath);\r
   }\r
 \r
@@ -184,8 +188,8 @@ HiiToLower (
       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
@@ -216,11 +220,11 @@ HiiToLower (
 **/\r
 VOID\r
 GenerateSubStr (\r
-  IN CONST EFI_STRING              String,\r
-  IN  UINTN                        BufferLen,\r
-  IN  VOID                         *Buffer,\r
-  IN  UINT8                        Flag,\r
-  OUT EFI_STRING                   *SubStr\r
+  IN CONST EFI_STRING  String,\r
+  IN  UINTN            BufferLen,\r
+  IN  VOID             *Buffer,\r
+  IN  UINT8            Flag,\r
+  OUT EFI_STRING       *SubStr\r
   )\r
 {\r
   UINTN       Length;\r
@@ -249,63 +253,66 @@ GenerateSubStr (
   StrCpyS (Str, Length, String);\r
 \r
   StringHeader = Str + StrLen (String);\r
-  TemString    = (CHAR16 *) StringHeader;\r
+  TemString    = (CHAR16 *)StringHeader;\r
 \r
   switch (Flag) {\r
-  case 1:\r
-    //\r
-    // Convert Buffer to Hex String in reverse order\r
-    //\r
-    TemBuffer = ((UINT8 *) Buffer);\r
-    for (Index = 0; Index < BufferLen; Index ++, TemBuffer ++) {\r
-      UnicodeValueToStringS (\r
-        TemString,\r
-        sizeof (CHAR16) * (Length - StrnLenS (Str, Length)),\r
-        PREFIX_ZERO | RADIX_HEX,\r
-        *TemBuffer,\r
-        2\r
-        );\r
-      TemString += StrnLenS (TemString, Length - StrnLenS (Str, Length));\r
-    }\r
-    break;\r
-  case 2:\r
-    //\r
-    // Check buffer is enough\r
-    //\r
-    TemName = (CHAR16 *) Buffer;\r
-    ASSERT ((BufferLen * 2 + 1) >= (StrLen (TemName) * 4 + 1));\r
-    //\r
-    // Convert Unicode String to Config String, e.g. "ABCD" => "0041004200430044"\r
-    //\r
-    for (; *TemName != L'\0'; TemName++) {\r
-      UnicodeValueToStringS (\r
-        TemString,\r
-        sizeof (CHAR16) * (Length - StrnLenS (Str, Length)),\r
-        PREFIX_ZERO | RADIX_HEX,\r
-        *TemName,\r
-        4\r
-        );\r
-      TemString += StrnLenS (TemString, Length - StrnLenS (Str, Length));\r
-    }\r
-    break;\r
-  case 3:\r
-    //\r
-    // Convert Buffer to Hex String\r
-    //\r
-    TemBuffer = ((UINT8 *) Buffer) + BufferLen - 1;\r
-    for (Index = 0; Index < BufferLen; Index ++, TemBuffer --) {\r
-      UnicodeValueToStringS (\r
-        TemString,\r
-        sizeof (CHAR16) * (Length - StrnLenS (Str, Length)),\r
-        PREFIX_ZERO | RADIX_HEX,\r
-        *TemBuffer,\r
-        2\r
-        );\r
-      TemString += StrnLenS (TemString, Length - StrnLenS (Str, Length));\r
-    }\r
-    break;\r
-  default:\r
-    break;\r
+    case 1:\r
+      //\r
+      // Convert Buffer to Hex String in reverse order\r
+      //\r
+      TemBuffer = ((UINT8 *)Buffer);\r
+      for (Index = 0; Index < BufferLen; Index++, TemBuffer++) {\r
+        UnicodeValueToStringS (\r
+          TemString,\r
+          sizeof (CHAR16) * (Length - StrnLenS (Str, Length)),\r
+          PREFIX_ZERO | RADIX_HEX,\r
+          *TemBuffer,\r
+          2\r
+          );\r
+        TemString += StrnLenS (TemString, Length - StrnLenS (Str, Length));\r
+      }\r
+\r
+      break;\r
+    case 2:\r
+      //\r
+      // Check buffer is enough\r
+      //\r
+      TemName = (CHAR16 *)Buffer;\r
+      ASSERT ((BufferLen * 2 + 1) >= (StrLen (TemName) * 4 + 1));\r
+      //\r
+      // Convert Unicode String to Config String, e.g. "ABCD" => "0041004200430044"\r
+      //\r
+      for ( ; *TemName != L'\0'; TemName++) {\r
+        UnicodeValueToStringS (\r
+          TemString,\r
+          sizeof (CHAR16) * (Length - StrnLenS (Str, Length)),\r
+          PREFIX_ZERO | RADIX_HEX,\r
+          *TemName,\r
+          4\r
+          );\r
+        TemString += StrnLenS (TemString, Length - StrnLenS (Str, Length));\r
+      }\r
+\r
+      break;\r
+    case 3:\r
+      //\r
+      // Convert Buffer to Hex String\r
+      //\r
+      TemBuffer = ((UINT8 *)Buffer) + BufferLen - 1;\r
+      for (Index = 0; Index < BufferLen; Index++, TemBuffer--) {\r
+        UnicodeValueToStringS (\r
+          TemString,\r
+          sizeof (CHAR16) * (Length - StrnLenS (Str, Length)),\r
+          PREFIX_ZERO | RADIX_HEX,\r
+          *TemBuffer,\r
+          2\r
+          );\r
+        TemString += StrnLenS (TemString, Length - StrnLenS (Str, Length));\r
+      }\r
+\r
+      break;\r
+    default:\r
+      break;\r
   }\r
 \r
   //\r
@@ -317,7 +324,6 @@ GenerateSubStr (
   *SubStr = Str;\r
 }\r
 \r
-\r
 /**\r
   Retrieve the <ConfigBody> from String then output it.\r
 \r
@@ -335,15 +341,15 @@ GenerateSubStr (
 **/\r
 EFI_STATUS\r
 OutputConfigBody (\r
-  IN  EFI_STRING                   String,\r
-  OUT EFI_STRING                   *ConfigBody\r
+  IN  EFI_STRING  String,\r
+  OUT EFI_STRING  *ConfigBody\r
   )\r
 {\r
   EFI_STRING  TmpPtr;\r
   EFI_STRING  Result;\r
   UINTN       Length;\r
 \r
-  if (String == NULL || ConfigBody == NULL) {\r
+  if ((String == NULL) || (ConfigBody == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
@@ -372,13 +378,14 @@ OutputConfigBody (
   if (Length == 0) {\r
     return EFI_NOT_FOUND;\r
   }\r
+\r
   Result = AllocateCopyPool (Length * sizeof (CHAR16), String);\r
   if (Result == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
 \r
   *(Result + Length - 1) = 0;\r
-  *ConfigBody = Result;\r
+  *ConfigBody            = Result;\r
   return EFI_SUCCESS;\r
 }\r
 \r
@@ -400,35 +407,37 @@ OutputConfigBody (
 **/\r
 EFI_STATUS\r
 AppendToMultiString (\r
-  IN OUT EFI_STRING                *MultiString,\r
-  IN EFI_STRING                    AppendString\r
+  IN OUT EFI_STRING  *MultiString,\r
+  IN EFI_STRING      AppendString\r
   )\r
 {\r
-  UINTN AppendStringSize;\r
-  UINTN MultiStringSize;\r
-  UINTN MaxLen;\r
+  UINTN  AppendStringSize;\r
+  UINTN  MultiStringSize;\r
+  UINTN  MaxLen;\r
 \r
-  if (MultiString == NULL || *MultiString == NULL || AppendString == NULL) {\r
+  if ((MultiString == NULL) || (*MultiString == NULL) || (AppendString == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
   AppendStringSize = StrSize (AppendString);\r
   MultiStringSize  = StrSize (*MultiString);\r
-  MaxLen = MAX_STRING_LENGTH / sizeof (CHAR16);\r
+  MaxLen           = MAX_STRING_LENGTH / sizeof (CHAR16);\r
 \r
   //\r
   // Enlarge the buffer each time when length exceeds MAX_STRING_LENGTH.\r
   //\r
-  if (MultiStringSize + AppendStringSize > MAX_STRING_LENGTH ||\r
-      MultiStringSize > MAX_STRING_LENGTH) {\r
-    *MultiString = (EFI_STRING) ReallocatePool (\r
-                                  MultiStringSize,\r
-                                  MultiStringSize + AppendStringSize,\r
-                                  (VOID *) (*MultiString)\r
-                                  );\r
+  if ((MultiStringSize + AppendStringSize > MAX_STRING_LENGTH) ||\r
+      (MultiStringSize > MAX_STRING_LENGTH))\r
+  {\r
+    *MultiString = (EFI_STRING)ReallocatePool (\r
+                                 MultiStringSize,\r
+                                 MultiStringSize + AppendStringSize,\r
+                                 (VOID *)(*MultiString)\r
+                                 );\r
     MaxLen = (MultiStringSize + AppendStringSize) / sizeof (CHAR16);\r
     ASSERT (*MultiString != NULL);\r
   }\r
+\r
   //\r
   // Append the incoming string\r
   //\r
@@ -437,7 +446,6 @@ AppendToMultiString (
   return EFI_SUCCESS;\r
 }\r
 \r
-\r
 /**\r
   Get the value of <Number> in <BlockConfig> format, i.e. the value of OFFSET\r
   or WIDTH or VALUE.\r
@@ -459,21 +467,21 @@ AppendToMultiString (
 **/\r
 EFI_STATUS\r
 GetValueOfNumber (\r
-  IN EFI_STRING                    StringPtr,\r
-  OUT UINT8                        **Number,\r
-  OUT UINTN                        *Len\r
+  IN EFI_STRING  StringPtr,\r
+  OUT UINT8      **Number,\r
+  OUT UINTN      *Len\r
   )\r
 {\r
-  EFI_STRING               TmpPtr;\r
-  UINTN                    Length;\r
-  EFI_STRING               Str;\r
-  UINT8                    *Buf;\r
-  EFI_STATUS               Status;\r
-  UINT8                    DigitUint8;\r
-  UINTN                    Index;\r
-  CHAR16                   TemStr[2];\r
-\r
-  if (StringPtr == NULL || *StringPtr == L'\0' || Number == NULL || Len == NULL) {\r
+  EFI_STRING  TmpPtr;\r
+  UINTN       Length;\r
+  EFI_STRING  Str;\r
+  UINT8       *Buf;\r
+  EFI_STATUS  Status;\r
+  UINT8       DigitUint8;\r
+  UINTN       Index;\r
+  CHAR16      TemStr[2];\r
+\r
+  if ((StringPtr == NULL) || (*StringPtr == L'\0') || (Number == NULL) || (Len == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
@@ -483,19 +491,21 @@ GetValueOfNumber (
   while (*StringPtr != L'\0' && *StringPtr != L'&') {\r
     StringPtr++;\r
   }\r
+\r
   *Len   = StringPtr - TmpPtr;\r
   Length = *Len + 1;\r
 \r
-  Str = (EFI_STRING) AllocateZeroPool (Length * sizeof (CHAR16));\r
+  Str = (EFI_STRING)AllocateZeroPool (Length * sizeof (CHAR16));\r
   if (Str == NULL) {\r
     Status = EFI_OUT_OF_RESOURCES;\r
     goto Exit;\r
   }\r
+\r
   CopyMem (Str, TmpPtr, *Len * sizeof (CHAR16));\r
   *(Str + *Len) = L'\0';\r
 \r
   Length = (Length + 1) / 2;\r
-  Buf = (UINT8 *) AllocateZeroPool (Length);\r
+  Buf    = (UINT8 *)AllocateZeroPool (Length);\r
   if (Buf == NULL) {\r
     Status = EFI_OUT_OF_RESOURCES;\r
     goto Exit;\r
@@ -503,13 +513,13 @@ GetValueOfNumber (
 \r
   Length = *Len;\r
   ZeroMem (TemStr, sizeof (TemStr));\r
-  for (Index = 0; Index < Length; Index ++) {\r
-    TemStr[0] = Str[Length - Index - 1];\r
-    DigitUint8 = (UINT8) StrHexToUint64 (TemStr);\r
+  for (Index = 0; Index < Length; Index++) {\r
+    TemStr[0]  = Str[Length - Index - 1];\r
+    DigitUint8 = (UINT8)StrHexToUint64 (TemStr);\r
     if ((Index & 1) == 0) {\r
-      Buf [Index/2] = DigitUint8;\r
+      Buf[Index/2] = DigitUint8;\r
     } else {\r
-      Buf [Index/2] = (UINT8) ((DigitUint8 << 4) + Buf [Index/2]);\r
+      Buf[Index/2] = (UINT8)((DigitUint8 << 4) + Buf[Index/2]);\r
     }\r
   }\r
 \r
@@ -538,29 +548,30 @@ Exit:
 \r
 **/\r
 EFI_STATUS\r
-FindSameBlockElement(\r
-  IN  EFI_STRING   String,\r
-  IN  EFI_STRING   BlockName,\r
-  IN  UINT8        *Buffer,\r
-  OUT BOOLEAN      *Found,\r
-  IN  UINTN        BufferLen\r
+FindSameBlockElement (\r
+  IN  EFI_STRING  String,\r
+  IN  EFI_STRING  BlockName,\r
+  IN  UINT8       *Buffer,\r
+  OUT BOOLEAN     *Found,\r
+  IN  UINTN       BufferLen\r
   )\r
 {\r
-  EFI_STRING   BlockPtr;\r
-  UINTN        Length;\r
-  UINT8        *TempBuffer;\r
-  EFI_STATUS   Status;\r
+  EFI_STRING  BlockPtr;\r
+  UINTN       Length;\r
+  UINT8       *TempBuffer;\r
+  EFI_STATUS  Status;\r
 \r
   TempBuffer = NULL;\r
-  *Found = FALSE;\r
-  BlockPtr = StrStr (String, BlockName);\r
+  *Found     = FALSE;\r
+  BlockPtr   = StrStr (String, BlockName);\r
 \r
   while (BlockPtr != NULL) {\r
     BlockPtr += StrLen (BlockName);\r
-    Status = GetValueOfNumber (BlockPtr, &TempBuffer, &Length);\r
+    Status    = GetValueOfNumber (BlockPtr, &TempBuffer, &Length);\r
     if (EFI_ERROR (Status)) {\r
       return Status;\r
     }\r
+\r
     ASSERT (TempBuffer != NULL);\r
     if ((BufferLen == Length) && (0 == CompareMem (Buffer, TempBuffer, Length))) {\r
       *Found = TRUE;\r
@@ -570,9 +581,10 @@ FindSameBlockElement(
     } else {\r
       FreePool (TempBuffer);\r
       TempBuffer = NULL;\r
-      BlockPtr = StrStr (BlockPtr + 1, BlockName);\r
+      BlockPtr   = StrStr (BlockPtr + 1, BlockName);\r
     }\r
   }\r
+\r
   return EFI_SUCCESS;\r
 }\r
 \r
@@ -599,19 +611,19 @@ CompareBlockElementDefault (
   IN OUT  EFI_STRING  *ConfigAltResp,\r
   IN      EFI_STRING  AltConfigHdr,\r
   IN OUT  BOOLEAN     *ConfigAltRespChanged\r
-)\r
+  )\r
 {\r
-  EFI_STATUS    Status;\r
-  EFI_STRING    BlockPtr;\r
-  EFI_STRING    BlockPtrStart;\r
-  EFI_STRING    StringPtr;\r
-  EFI_STRING    AppendString;\r
-  EFI_STRING    AltConfigHdrPtr;\r
-  UINT8         *TempBuffer;\r
-  UINTN         OffsetLength;\r
-  UINTN         AppendSize;\r
-  UINTN         TotalSize;\r
-  BOOLEAN       FoundOffset;\r
+  EFI_STATUS  Status;\r
+  EFI_STRING  BlockPtr;\r
+  EFI_STRING  BlockPtrStart;\r
+  EFI_STRING  StringPtr;\r
+  EFI_STRING  AppendString;\r
+  EFI_STRING  AltConfigHdrPtr;\r
+  UINT8       *TempBuffer;\r
+  UINTN       OffsetLength;\r
+  UINTN       AppendSize;\r
+  UINTN       TotalSize;\r
+  BOOLEAN     FoundOffset;\r
 \r
   AppendString = NULL;\r
   TempBuffer   = NULL;\r
@@ -632,12 +644,13 @@ CompareBlockElementDefault (
     // Find the "&OFFSET=<Number>" block and get the value of the Number with AltConfigHdr in DefaultAltCfgResp.\r
     //\r
     BlockPtrStart = BlockPtr;\r
-    BlockPtr += StrLen (L"&OFFSET=");\r
-    Status = GetValueOfNumber (BlockPtr, &TempBuffer, &OffsetLength);\r
+    BlockPtr     += StrLen (L"&OFFSET=");\r
+    Status        = GetValueOfNumber (BlockPtr, &TempBuffer, &OffsetLength);\r
     if (EFI_ERROR (Status)) {\r
       Status = EFI_OUT_OF_RESOURCES;\r
       goto Exit;\r
     }\r
+\r
     //\r
     // To find the same "&OFFSET=<Number>" block in ConfigAltResp.\r
     //\r
@@ -646,10 +659,12 @@ CompareBlockElementDefault (
       FreePool (TempBuffer);\r
       TempBuffer = NULL;\r
     }\r
+\r
     if (EFI_ERROR (Status)) {\r
       Status = EFI_OUT_OF_RESOURCES;\r
       goto Exit;\r
     }\r
+\r
     if (!FoundOffset) {\r
       //\r
       // Don't find the same "&OFFSET=<Number>" block in ConfigAltResp.\r
@@ -662,23 +677,25 @@ CompareBlockElementDefault (
       } else {\r
         AppendSize = StrSize (BlockPtrStart);\r
       }\r
+\r
       //\r
       // Copy the <BlockConfig> to AppendString.\r
       //\r
       if (AppendString == NULL) {\r
-        AppendString = (EFI_STRING) AllocateZeroPool (AppendSize + sizeof (CHAR16));\r
+        AppendString = (EFI_STRING)AllocateZeroPool (AppendSize + sizeof (CHAR16));\r
         StrnCatS (AppendString, AppendSize / sizeof (CHAR16) + 1, BlockPtrStart, AppendSize / sizeof (CHAR16));\r
       } else {\r
-        TotalSize = StrSize (AppendString) + AppendSize + sizeof (CHAR16);\r
-        AppendString = (EFI_STRING) ReallocatePool (\r
-                                      StrSize (AppendString),\r
-                                      TotalSize,\r
-                                      AppendString\r
-                                      );\r
+        TotalSize    = StrSize (AppendString) + AppendSize + sizeof (CHAR16);\r
+        AppendString = (EFI_STRING)ReallocatePool (\r
+                                     StrSize (AppendString),\r
+                                     TotalSize,\r
+                                     AppendString\r
+                                     );\r
         if (AppendString == NULL) {\r
           Status = EFI_OUT_OF_RESOURCES;\r
           goto Exit;\r
         }\r
+\r
         StrnCatS (AppendString, TotalSize / sizeof (CHAR16), BlockPtrStart, AppendSize / sizeof (CHAR16));\r
       }\r
     } else {\r
@@ -693,16 +710,17 @@ CompareBlockElementDefault (
     //\r
     // Reallocate ConfigAltResp to copy the AppendString.\r
     //\r
-    TotalSize = StrSize (*ConfigAltResp) + StrSize (AppendString) + sizeof (CHAR16);\r
-    *ConfigAltResp = (EFI_STRING) ReallocatePool (\r
-                                    StrSize (*ConfigAltResp),\r
-                                    TotalSize,\r
-                                    *ConfigAltResp\r
-                                    );\r
+    TotalSize      = StrSize (*ConfigAltResp) + StrSize (AppendString) + sizeof (CHAR16);\r
+    *ConfigAltResp = (EFI_STRING)ReallocatePool (\r
+                                   StrSize (*ConfigAltResp),\r
+                                   TotalSize,\r
+                                   *ConfigAltResp\r
+                                   );\r
     if (*ConfigAltResp == NULL) {\r
       Status = EFI_OUT_OF_RESOURCES;\r
       goto Exit;\r
     }\r
+\r
     StrCatS (*ConfigAltResp, TotalSize / sizeof (CHAR16), AppendString);\r
     *ConfigAltRespChanged = TRUE;\r
   }\r
@@ -740,27 +758,27 @@ CompareNameElementDefault (
   IN OUT EFI_STRING  *ConfigAltResp,\r
   IN     EFI_STRING  AltConfigHdr,\r
   IN OUT BOOLEAN     *ConfigAltRespChanged\r
-)\r
+  )\r
 {\r
-  EFI_STATUS    Status;\r
-  EFI_STRING    NvConfigPtr;\r
-  EFI_STRING    NvConfigStart;\r
-  EFI_STRING    NvConfigValuePtr;\r
-  EFI_STRING    StringPtr;\r
-  EFI_STRING    NvConfigExist;\r
-  EFI_STRING    AppendString;\r
-  CHAR16        TempChar;\r
-  UINTN         AppendSize;\r
-  UINTN         TotalSize;\r
-\r
-  AppendString = NULL;\r
+  EFI_STATUS  Status;\r
+  EFI_STRING  NvConfigPtr;\r
+  EFI_STRING  NvConfigStart;\r
+  EFI_STRING  NvConfigValuePtr;\r
+  EFI_STRING  StringPtr;\r
+  EFI_STRING  NvConfigExist;\r
+  EFI_STRING  AppendString;\r
+  CHAR16      TempChar;\r
+  UINTN       AppendSize;\r
+  UINTN       TotalSize;\r
+\r
+  AppendString  = NULL;\r
   NvConfigExist = NULL;\r
   //\r
   // Make NvConfigPtr point to the first <NvConfig> with AltConfigHdr in DefaultAltCfgResp.\r
   //\r
   NvConfigPtr = StrStr (DefaultAltCfgResp, AltConfigHdr);\r
   ASSERT (NvConfigPtr != NULL);\r
-  NvConfigPtr = StrStr (NvConfigPtr + StrLen(AltConfigHdr),L"&");\r
+  NvConfigPtr = StrStr (NvConfigPtr + StrLen (AltConfigHdr), L"&");\r
   //\r
   // Make StringPtr point to the first <NvConfig> with AltConfigHdr in ConfigAltResp.\r
   //\r
@@ -774,10 +792,10 @@ CompareNameElementDefault (
     // <NvConfig> ::= <Label>'='<String> | <Label>'='<Number>.\r
     // Get the <Label> with AltConfigHdr in DefaultAltCfgResp.\r
     //\r
-    NvConfigStart = NvConfigPtr;\r
+    NvConfigStart    = NvConfigPtr;\r
     NvConfigValuePtr = StrStr (NvConfigPtr + 1, L"=");\r
     ASSERT (NvConfigValuePtr != NULL);\r
-    TempChar = *NvConfigValuePtr;\r
+    TempChar          = *NvConfigValuePtr;\r
     *NvConfigValuePtr = L'\0';\r
     //\r
     // Get the <Label> with AltConfigHdr in ConfigAltResp.\r
@@ -789,29 +807,31 @@ CompareNameElementDefault (
       // Calculate the size of <NvConfig>.\r
       //\r
       *NvConfigValuePtr = TempChar;\r
-      NvConfigPtr = StrStr (NvConfigPtr + 1, L"&");\r
+      NvConfigPtr       = StrStr (NvConfigPtr + 1, L"&");\r
       if (NvConfigPtr != NULL) {\r
         AppendSize = (NvConfigPtr - NvConfigStart) * sizeof (CHAR16);\r
       } else {\r
         AppendSize = StrSize (NvConfigStart);\r
       }\r
+\r
       //\r
       // Copy the <NvConfig> to AppendString.\r
       //\r
       if (AppendString == NULL) {\r
-        AppendString = (EFI_STRING) AllocateZeroPool (AppendSize + sizeof (CHAR16));\r
+        AppendString = (EFI_STRING)AllocateZeroPool (AppendSize + sizeof (CHAR16));\r
         StrnCatS (AppendString, AppendSize / sizeof (CHAR16) + 1, NvConfigStart, AppendSize / sizeof (CHAR16));\r
       } else {\r
-         TotalSize = StrSize (AppendString) + AppendSize + sizeof (CHAR16);\r
-         AppendString = (EFI_STRING) ReallocatePool (\r
-                                       StrSize (AppendString),\r
-                                       TotalSize,\r
-                                       AppendString\r
-                                       );\r
+        TotalSize    = StrSize (AppendString) + AppendSize + sizeof (CHAR16);\r
+        AppendString = (EFI_STRING)ReallocatePool (\r
+                                     StrSize (AppendString),\r
+                                     TotalSize,\r
+                                     AppendString\r
+                                     );\r
         if (AppendString == NULL) {\r
           Status = EFI_OUT_OF_RESOURCES;\r
           goto Exit;\r
         }\r
+\r
         StrnCatS (AppendString, TotalSize / sizeof (CHAR16), NvConfigStart, AppendSize / sizeof (CHAR16));\r
       }\r
     } else {\r
@@ -819,32 +839,36 @@ CompareNameElementDefault (
       // To find next <Label> in DefaultAltCfgResp.\r
       //\r
       *NvConfigValuePtr = TempChar;\r
-      NvConfigPtr = StrStr (NvConfigPtr + 1, L"&");\r
+      NvConfigPtr       = StrStr (NvConfigPtr + 1, L"&");\r
     }\r
   }\r
+\r
   if (AppendString != NULL) {\r
     //\r
     // Reallocate ConfigAltResp to copy the AppendString.\r
     //\r
-    TotalSize = StrSize (*ConfigAltResp) + StrSize (AppendString) + sizeof (CHAR16);\r
-    *ConfigAltResp = (EFI_STRING) ReallocatePool (\r
-                                    StrSize (*ConfigAltResp),\r
-                                    StrSize (*ConfigAltResp) + StrSize (AppendString) + sizeof (CHAR16),\r
-                                    *ConfigAltResp\r
-                                    );\r
+    TotalSize      = StrSize (*ConfigAltResp) + StrSize (AppendString) + sizeof (CHAR16);\r
+    *ConfigAltResp = (EFI_STRING)ReallocatePool (\r
+                                   StrSize (*ConfigAltResp),\r
+                                   StrSize (*ConfigAltResp) + StrSize (AppendString) + sizeof (CHAR16),\r
+                                   *ConfigAltResp\r
+                                   );\r
     if (*ConfigAltResp == NULL) {\r
       Status = EFI_OUT_OF_RESOURCES;\r
       goto Exit;\r
     }\r
+\r
     StrCatS (*ConfigAltResp, TotalSize / sizeof (CHAR16), AppendString);\r
     *ConfigAltRespChanged = TRUE;\r
   }\r
+\r
   Status = EFI_SUCCESS;\r
 \r
 Exit:\r
   if (AppendString != NULL) {\r
     FreePool (AppendString);\r
   }\r
+\r
   return Status;\r
 }\r
 \r
@@ -872,20 +896,20 @@ CompareAndMergeDefaultString (
   IN     EFI_STRING  AltConfigHdr\r
   )\r
 {\r
-  EFI_STATUS     Status;\r
-  EFI_STRING     AltCfgRespBackup;\r
-  EFI_STRING     AltConfigHdrPtr;\r
-  EFI_STRING     AltConfigHdrPtrNext;\r
-  EFI_STRING     ConfigAltResp;\r
-  EFI_STRING     StringPtr;\r
-  EFI_STRING     StringPtrNext;\r
-  EFI_STRING     BlockPtr;\r
-  UINTN          ReallocateSize;\r
-  CHAR16         TempChar;\r
-  CHAR16         TempCharA;\r
-  BOOLEAN        ConfigAltRespChanged;\r
-\r
-  Status = EFI_OUT_OF_RESOURCES;\r
+  EFI_STATUS  Status;\r
+  EFI_STRING  AltCfgRespBackup;\r
+  EFI_STRING  AltConfigHdrPtr;\r
+  EFI_STRING  AltConfigHdrPtrNext;\r
+  EFI_STRING  ConfigAltResp;\r
+  EFI_STRING  StringPtr;\r
+  EFI_STRING  StringPtrNext;\r
+  EFI_STRING  BlockPtr;\r
+  UINTN       ReallocateSize;\r
+  CHAR16      TempChar;\r
+  CHAR16      TempCharA;\r
+  BOOLEAN     ConfigAltRespChanged;\r
+\r
+  Status               = EFI_OUT_OF_RESOURCES;\r
   BlockPtr             = NULL;\r
   AltConfigHdrPtrNext  = NULL;\r
   StringPtrNext        = NULL;\r
@@ -896,15 +920,16 @@ CompareAndMergeDefaultString (
   ConfigAltRespChanged = FALSE;\r
 \r
   //\r
-  //To find the <AltResp> with AltConfigHdr in DefaultAltCfgResp, ignore other <AltResp> which follow it.\r
+  // To find the <AltResp> with AltConfigHdr in DefaultAltCfgResp, ignore other <AltResp> which follow it.\r
   //\r
   AltConfigHdrPtr = StrStr (DefaultAltCfgResp, AltConfigHdr);\r
   ASSERT (AltConfigHdrPtr != NULL);\r
   AltConfigHdrPtrNext = StrStr (AltConfigHdrPtr + 1, L"&GUID");\r
   if (AltConfigHdrPtrNext != NULL) {\r
-    TempChar = *AltConfigHdrPtrNext;\r
+    TempChar             = *AltConfigHdrPtrNext;\r
     *AltConfigHdrPtrNext = L'\0';\r
   }\r
+\r
   //\r
   // To find the <AltResp> with AltConfigHdr in AltCfgResp, ignore other <AltResp> which follow it.\r
   //\r
@@ -912,9 +937,10 @@ CompareAndMergeDefaultString (
   ASSERT (StringPtr != NULL);\r
   StringPtrNext = StrStr (StringPtr + 1, L"&GUID");\r
   if (StringPtrNext != NULL) {\r
-    TempCharA = *StringPtrNext;\r
+    TempCharA      = *StringPtrNext;\r
     *StringPtrNext = L'\0';\r
   }\r
+\r
   //\r
   // Copy the content of <ConfigAltResp> which contain current AltConfigHdr in AltCfgResp.\r
   //\r
@@ -922,6 +948,7 @@ CompareAndMergeDefaultString (
   if (ConfigAltResp == NULL) {\r
     goto Exit;\r
   }\r
+\r
   //\r
   // To find the <ConfigBody> with AltConfigHdr in DefaultAltCfgResp.\r
   //\r
@@ -933,7 +960,7 @@ CompareAndMergeDefaultString (
     // The ConfigAltResp which may contain the new <BlockConfig> get from DefaultAltCfgResp.\r
     //\r
     Status = CompareBlockElementDefault (DefaultAltCfgResp, &ConfigAltResp, AltConfigHdr, &ConfigAltRespChanged);\r
-    if (EFI_ERROR(Status)) {\r
+    if (EFI_ERROR (Status)) {\r
       goto Exit;\r
     }\r
   } else {\r
@@ -943,10 +970,11 @@ CompareAndMergeDefaultString (
     // The ConfigAltResp which may contain the new <NvConfig> get from DefaultAltCfgResp.\r
     //\r
     Status = CompareNameElementDefault (DefaultAltCfgResp, &ConfigAltResp, AltConfigHdr, &ConfigAltRespChanged);\r
-    if (EFI_ERROR(Status)) {\r
+    if (EFI_ERROR (Status)) {\r
       goto Exit;\r
     }\r
   }\r
+\r
   //\r
   // Restore the AltCfgResp.\r
   //\r
@@ -961,6 +989,7 @@ CompareAndMergeDefaultString (
     Status = EFI_SUCCESS;\r
     goto Exit;\r
   }\r
+\r
   //\r
   // ConfigAltResp has been changed, need to update the content in AltCfgResp.\r
   //\r
@@ -970,7 +999,7 @@ CompareAndMergeDefaultString (
     ReallocateSize = StrSize (ConfigAltResp) + sizeof (CHAR16);\r
   }\r
 \r
-  AltCfgRespBackup = (EFI_STRING) AllocateZeroPool (ReallocateSize);\r
+  AltCfgRespBackup = (EFI_STRING)AllocateZeroPool (ReallocateSize);\r
   if (AltCfgRespBackup == NULL) {\r
     goto Exit;\r
   }\r
@@ -987,14 +1016,15 @@ CompareAndMergeDefaultString (
 \r
 Exit:\r
   if (ConfigAltResp != NULL) {\r
-    FreePool(ConfigAltResp);\r
+    FreePool (ConfigAltResp);\r
   }\r
+\r
   //\r
   // Restore the DefaultAltCfgResp.\r
   //\r
   if ( AltConfigHdrPtrNext != NULL) {\r
     *AltConfigHdrPtrNext = TempChar;\r
-    AltConfigHdrPtrNext = NULL;\r
+    AltConfigHdrPtrNext  = NULL;\r
   }\r
 \r
   return Status;\r
@@ -1022,15 +1052,15 @@ MergeDefaultString (
   IN     EFI_STRING  DefaultAltCfgResp\r
   )\r
 {\r
-  EFI_STRING   StringPtrDefault;\r
-  EFI_STRING   StringPtrEnd;\r
-  CHAR16       TempChar;\r
-  EFI_STRING   StringPtr;\r
-  EFI_STRING   AltConfigHdr;\r
-  UINTN        HeaderLength;\r
-  UINTN        SizeAltCfgResp;\r
-  UINTN        MaxLen;\r
-  UINTN        TotalSize;\r
+  EFI_STRING  StringPtrDefault;\r
+  EFI_STRING  StringPtrEnd;\r
+  CHAR16      TempChar;\r
+  EFI_STRING  StringPtr;\r
+  EFI_STRING  AltConfigHdr;\r
+  UINTN       HeaderLength;\r
+  UINTN       SizeAltCfgResp;\r
+  UINTN       MaxLen;\r
+  UINTN       TotalSize;\r
 \r
   if (*AltCfgResp == NULL) {\r
     return EFI_INVALID_PARAMETER;\r
@@ -1039,8 +1069,8 @@ MergeDefaultString (
   //\r
   // Get the request ConfigHdr\r
   //\r
-  SizeAltCfgResp  = 0;\r
-  StringPtr       = *AltCfgResp;\r
+  SizeAltCfgResp = 0;\r
+  StringPtr      = *AltCfgResp;\r
 \r
   //\r
   // Find <ConfigHdr> GUID=...&NAME=...&PATH=...\r
@@ -1048,30 +1078,36 @@ MergeDefaultString (
   if (StrnCmp (StringPtr, L"GUID=", StrLen (L"GUID=")) != 0) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
+\r
   while (*StringPtr != L'\0' && StrnCmp (StringPtr, L"&NAME=", StrLen (L"&NAME=")) != 0) {\r
     StringPtr++;\r
   }\r
+\r
   while (*StringPtr != L'\0' && StrnCmp (StringPtr, L"&PATH=", StrLen (L"&PATH=")) != 0) {\r
     StringPtr++;\r
   }\r
+\r
   if (*StringPtr == L'\0') {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
+\r
   StringPtr += StrLen (L"&PATH=");\r
   while (*StringPtr != L'\0' && *StringPtr != L'&') {\r
-    StringPtr ++;\r
+    StringPtr++;\r
   }\r
+\r
   HeaderLength = StringPtr - *AltCfgResp;\r
 \r
   //\r
   // Construct AltConfigHdr string  "&<ConfigHdr>&ALTCFG=XXXX\0"\r
   //                                  |1| StrLen (ConfigHdr) | 8 | 4 | 1 |\r
   //\r
-  MaxLen = 1 + HeaderLength + 8 + 4 + 1;\r
+  MaxLen       = 1 + HeaderLength + 8 + 4 + 1;\r
   AltConfigHdr = AllocateZeroPool (MaxLen * sizeof (CHAR16));\r
   if (AltConfigHdr == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
+\r
   StrCpyS (AltConfigHdr, MaxLen, L"&");\r
   StrnCatS (AltConfigHdr, MaxLen, *AltCfgResp, HeaderLength);\r
   StrCatS (AltConfigHdr, MaxLen, L"&ALTCFG=");\r
@@ -1095,31 +1131,33 @@ MergeDefaultString (
         //\r
         // No more default string is found.\r
         //\r
-        TotalSize = SizeAltCfgResp + StrSize (StringPtrDefault);\r
-        *AltCfgResp    = (EFI_STRING) ReallocatePool (\r
-                                     SizeAltCfgResp,\r
-                                     TotalSize,\r
-                                     (VOID *) (*AltCfgResp)\r
-                                     );\r
+        TotalSize   = SizeAltCfgResp + StrSize (StringPtrDefault);\r
+        *AltCfgResp = (EFI_STRING)ReallocatePool (\r
+                                    SizeAltCfgResp,\r
+                                    TotalSize,\r
+                                    (VOID *)(*AltCfgResp)\r
+                                    );\r
         if (*AltCfgResp == NULL) {\r
           FreePool (AltConfigHdr);\r
           return EFI_OUT_OF_RESOURCES;\r
         }\r
+\r
         StrCatS (*AltCfgResp, TotalSize / sizeof (CHAR16), StringPtrDefault);\r
         break;\r
       } else {\r
-        TempChar = *StringPtrEnd;\r
+        TempChar      = *StringPtrEnd;\r
         *StringPtrEnd = L'\0';\r
-        TotalSize = SizeAltCfgResp + StrSize (StringPtrDefault);\r
-        *AltCfgResp = (EFI_STRING) ReallocatePool (\r
-                                     SizeAltCfgResp,\r
-                                     TotalSize,\r
-                                     (VOID *) (*AltCfgResp)\r
-                                     );\r
+        TotalSize     = SizeAltCfgResp + StrSize (StringPtrDefault);\r
+        *AltCfgResp   = (EFI_STRING)ReallocatePool (\r
+                                      SizeAltCfgResp,\r
+                                      TotalSize,\r
+                                      (VOID *)(*AltCfgResp)\r
+                                      );\r
         if (*AltCfgResp == NULL) {\r
           FreePool (AltConfigHdr);\r
           return EFI_OUT_OF_RESOURCES;\r
         }\r
+\r
         StrCatS (*AltCfgResp, TotalSize / sizeof (CHAR16), StringPtrDefault);\r
         *StringPtrEnd = TempChar;\r
       }\r
@@ -1136,7 +1174,7 @@ MergeDefaultString (
     // Find next AltCfg String\r
     //\r
     *(AltConfigHdr + HeaderLength) = L'\0';\r
-    StringPtrDefault = StrStr (StringPtrDefault + 1, AltConfigHdr);\r
+    StringPtrDefault               = StrStr (StringPtrDefault + 1, AltConfigHdr);\r
   }\r
 \r
   FreePool (AltConfigHdr);\r
@@ -1152,15 +1190,15 @@ MergeDefaultString (
 **/\r
 VOID\r
 InsertDefaultValue (\r
-  IN IFR_BLOCK_DATA         *BlockData,\r
-  IN IFR_DEFAULT_DATA       *DefaultValueData\r
+  IN IFR_BLOCK_DATA    *BlockData,\r
+  IN IFR_DEFAULT_DATA  *DefaultValueData\r
   )\r
 {\r
-  LIST_ENTRY             *Link;\r
-  IFR_DEFAULT_DATA       *DefaultValueArray;\r
-  LIST_ENTRY             *DefaultLink;\r
+  LIST_ENTRY        *Link;\r
+  IFR_DEFAULT_DATA  *DefaultValueArray;\r
+  LIST_ENTRY        *DefaultLink;\r
 \r
-  DefaultLink   = &BlockData->DefaultValueEntry;\r
+  DefaultLink = &BlockData->DefaultValueEntry;\r
 \r
   for (Link = DefaultLink->ForwardLink; Link != DefaultLink; Link = Link->ForwardLink) {\r
     DefaultValueArray = BASE_CR (Link, IFR_DEFAULT_DATA, Entry);\r
@@ -1169,14 +1207,15 @@ InsertDefaultValue (
       // DEFAULT_VALUE_FROM_OPCODE has high priority, DEFAULT_VALUE_FROM_DEFAULT has low priority.\r
       // When default types are DEFAULT_VALUE_FROM_OTHER_DEFAULT, the default value can be overrode.\r
       //\r
-      if ((DefaultValueData->Type > DefaultValueArray->Type) || (DefaultValueData->Type == DefaultValueArray->Type && DefaultValueData->Type == DefaultValueFromOtherDefault)) {\r
+      if ((DefaultValueData->Type > DefaultValueArray->Type) || ((DefaultValueData->Type == DefaultValueArray->Type) && (DefaultValueData->Type == DefaultValueFromOtherDefault))) {\r
         //\r
         // Update the default value array in BlockData.\r
         //\r
         CopyMem (&DefaultValueArray->Value, &DefaultValueData->Value, sizeof (EFI_IFR_TYPE_VALUE));\r
-        DefaultValueArray->Type  = DefaultValueData->Type;\r
+        DefaultValueArray->Type    = DefaultValueData->Type;\r
         DefaultValueArray->Cleaned = DefaultValueData->Cleaned;\r
       }\r
+\r
       return;\r
     }\r
   }\r
@@ -1199,13 +1238,13 @@ InsertDefaultValue (
 **/\r
 VOID\r
 InsertBlockData (\r
-  IN LIST_ENTRY        *BlockLink,\r
-  IN IFR_BLOCK_DATA    **BlockData\r
+  IN LIST_ENTRY      *BlockLink,\r
+  IN IFR_BLOCK_DATA  **BlockData\r
   )\r
 {\r
-  LIST_ENTRY          *Link;\r
-  IFR_BLOCK_DATA      *BlockArray;\r
-  IFR_BLOCK_DATA      *BlockSingleData;\r
+  LIST_ENTRY      *Link;\r
+  IFR_BLOCK_DATA  *BlockArray;\r
+  IFR_BLOCK_DATA  *BlockSingleData;\r
 \r
   BlockSingleData = *BlockData;\r
 \r
@@ -1220,7 +1259,7 @@ InsertBlockData (
   for (Link = BlockLink->ForwardLink; Link != BlockLink; Link = Link->ForwardLink) {\r
     BlockArray = BASE_CR (Link, IFR_BLOCK_DATA, Entry);\r
     if (BlockArray->Offset == BlockSingleData->Offset) {\r
-      if ((BlockArray->Width > BlockSingleData->Width) || (BlockSingleData->IsBitVar && BlockArray->Width == BlockSingleData->Width)) {\r
+      if ((BlockArray->Width > BlockSingleData->Width) || (BlockSingleData->IsBitVar && (BlockArray->Width == BlockSingleData->Width))) {\r
         //\r
         // Insert this block data in the front of block array\r
         //\r
@@ -1228,7 +1267,7 @@ InsertBlockData (
         return;\r
       }\r
 \r
-      if ((!BlockSingleData->IsBitVar) && BlockArray->Width == BlockSingleData->Width) {\r
+      if ((!BlockSingleData->IsBitVar) && (BlockArray->Width == BlockSingleData->Width)) {\r
         //\r
         // The same block array has been added.\r
         //\r
@@ -1236,6 +1275,7 @@ InsertBlockData (
           FreePool (BlockSingleData);\r
           *BlockData = BlockArray;\r
         }\r
+\r
         return;\r
       }\r
     } else if (BlockArray->Offset > BlockSingleData->Offset) {\r
@@ -1273,7 +1313,7 @@ InsertBlockData (
 **/\r
 CHAR8 *\r
 GetSupportedLanguages (\r
-  IN EFI_HII_HANDLE           HiiHandle\r
+  IN EFI_HII_HANDLE  HiiHandle\r
   )\r
 {\r
   EFI_STATUS  Status;\r
@@ -1287,7 +1327,7 @@ GetSupportedLanguages (
   // Retrieve the size required for the supported languages buffer.\r
   //\r
   LanguageSize = 0;\r
-  Status = mPrivate.HiiString.GetLanguages (&mPrivate.HiiString, HiiHandle, &TempSupportedLanguages, &LanguageSize);\r
+  Status       = mPrivate.HiiString.GetLanguages (&mPrivate.HiiString, HiiHandle, &TempSupportedLanguages, &LanguageSize);\r
 \r
   //\r
   // If GetLanguages() returns EFI_SUCCESS for a zero size,\r
@@ -1383,7 +1423,7 @@ InternalGetString (
   //\r
   // Get the current platform language setting\r
   //\r
-  GetEfiGlobalVariable2 (L"PlatformLang", (VOID**)&PlatformLanguage, NULL);\r
+  GetEfiGlobalVariable2 (L"PlatformLang", (VOID **)&PlatformLanguage, NULL);\r
 \r
   //\r
   // Get the best matching language from SupportedLanguages\r
@@ -1404,15 +1444,15 @@ InternalGetString (
   // Retrieve the size of the string in the string package for the BestLanguage\r
   //\r
   StringSize = 0;\r
-  Status = mPrivate.HiiString.GetString (\r
-                         &mPrivate.HiiString,\r
-                         BestLanguage,\r
-                         HiiHandle,\r
-                         StringId,\r
-                         &TempString,\r
-                         &StringSize,\r
-                         NULL\r
-                         );\r
+  Status     = mPrivate.HiiString.GetString (\r
+                                    &mPrivate.HiiString,\r
+                                    BestLanguage,\r
+                                    HiiHandle,\r
+                                    StringId,\r
+                                    &TempString,\r
+                                    &StringSize,\r
+                                    NULL\r
+                                    );\r
   //\r
   // If GetString() returns EFI_SUCCESS for a zero size,\r
   // then there are no supported languages registered for HiiHandle.  If GetString()\r
@@ -1435,14 +1475,14 @@ InternalGetString (
   // Retrieve the string from the string package\r
   //\r
   Status = mPrivate.HiiString.GetString (\r
-                         &mPrivate.HiiString,\r
-                         BestLanguage,\r
-                         HiiHandle,\r
-                         StringId,\r
-                         String,\r
-                         &StringSize,\r
-                         NULL\r
-                         );\r
+                                &mPrivate.HiiString,\r
+                                BestLanguage,\r
+                                HiiHandle,\r
+                                StringId,\r
+                                String,\r
+                                &StringSize,\r
+                                NULL\r
+                                );\r
   if (EFI_ERROR (Status)) {\r
     //\r
     // Free the buffer and return NULL if the supported languages can not be retrieved.\r
@@ -1458,9 +1498,11 @@ Error:
   if (SupportedLanguages != NULL) {\r
     FreePool (SupportedLanguages);\r
   }\r
+\r
   if (PlatformLanguage != NULL) {\r
     FreePool (PlatformLanguage);\r
   }\r
+\r
   if (BestLanguage != NULL) {\r
     FreePool (BestLanguage);\r
   }\r
@@ -1492,9 +1534,9 @@ BlockArrayCheck (
   IN EFI_HII_HANDLE  HiiHandle\r
   )\r
 {\r
-  LIST_ENTRY          *Link;\r
-  IFR_BLOCK_DATA      *BlockData;\r
-  EFI_STRING          Name;\r
+  LIST_ENTRY      *Link;\r
+  IFR_BLOCK_DATA  *BlockData;\r
+  EFI_STRING      Name;\r
 \r
   //\r
   // No Request Block array, all vars are got.\r
@@ -1517,6 +1559,7 @@ BlockArrayCheck (
         FreePool (Name);\r
         return TRUE;\r
       }\r
+\r
       FreePool (Name);\r
     } else {\r
       if ((VarOffset >= BlockData->Offset) && ((VarOffset + VarWidth) <= (BlockData->Offset + BlockData->Width))) {\r
@@ -1538,16 +1581,16 @@ BlockArrayCheck (
 **/\r
 EFI_STATUS\r
 GetFormPackageData (\r
-  IN     HII_DATABASE_RECORD        *DataBaseRecord,\r
-  IN OUT UINT8                      **HiiFormPackage,\r
-  OUT    UINTN                      *PackageSize\r
+  IN     HII_DATABASE_RECORD  *DataBaseRecord,\r
+  IN OUT UINT8                **HiiFormPackage,\r
+  OUT    UINTN                *PackageSize\r
   )\r
 {\r
-  EFI_STATUS                   Status;\r
-  UINTN                        Size;\r
-  UINTN                        ResultSize;\r
+  EFI_STATUS  Status;\r
+  UINTN       Size;\r
+  UINTN       ResultSize;\r
 \r
-  if (DataBaseRecord == NULL || HiiFormPackage == NULL || PackageSize == NULL) {\r
+  if ((DataBaseRecord == NULL) || (HiiFormPackage == NULL) || (PackageSize == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
@@ -1564,7 +1607,7 @@ GetFormPackageData (
              Size,\r
              HiiFormPackage,\r
              &ResultSize\r
-           );\r
+             );\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
@@ -1578,17 +1621,17 @@ GetFormPackageData (
   //\r
   // Get HiiFormPackage by HiiHandle\r
   //\r
-  Size   = ResultSize;\r
-  ResultSize    = 0;\r
-  Status = ExportFormPackages (\r
-             &mPrivate,\r
-             DataBaseRecord->Handle,\r
-             DataBaseRecord->PackageList,\r
-             0,\r
-             Size,\r
-             *HiiFormPackage,\r
-             &ResultSize\r
-           );\r
+  Size       = ResultSize;\r
+  ResultSize = 0;\r
+  Status     = ExportFormPackages (\r
+                 &mPrivate,\r
+                 DataBaseRecord->Handle,\r
+                 DataBaseRecord->PackageList,\r
+                 0,\r
+                 Size,\r
+                 *HiiFormPackage,\r
+                 &ResultSize\r
+                 );\r
   if (EFI_ERROR (Status)) {\r
     FreePool (*HiiFormPackage);\r
   }\r
@@ -1598,7 +1641,6 @@ GetFormPackageData (
   return Status;\r
 }\r
 \r
-\r
 /**\r
   This function parses Form Package to get the efi varstore info according to the request ConfigHdr.\r
 \r
@@ -1610,63 +1652,63 @@ GetFormPackageData (
 **/\r
 EFI_STATUS\r
 GetVarStoreType (\r
-  IN     HII_DATABASE_RECORD        *DataBaseRecord,\r
-  IN     EFI_STRING                 ConfigHdr,\r
-  OUT    BOOLEAN                    *IsEfiVarstore,\r
-  OUT    EFI_IFR_VARSTORE_EFI       **EfiVarStore\r
+  IN     HII_DATABASE_RECORD   *DataBaseRecord,\r
+  IN     EFI_STRING            ConfigHdr,\r
+  OUT    BOOLEAN               *IsEfiVarstore,\r
+  OUT    EFI_IFR_VARSTORE_EFI  **EfiVarStore\r
   )\r
 {\r
-  EFI_STATUS               Status;\r
-  UINTN                    IfrOffset;\r
-  UINTN                    PackageOffset;\r
-  EFI_IFR_OP_HEADER        *IfrOpHdr;\r
-  CHAR16                   *VarStoreName;\r
-  UINTN                    NameSize;\r
-  EFI_STRING               GuidStr;\r
-  EFI_STRING               NameStr;\r
-  EFI_STRING               TempStr;\r
-  UINTN                    LengthString;\r
-  UINT8                    *HiiFormPackage;\r
-  UINTN                    PackageSize;\r
-  EFI_IFR_VARSTORE_EFI     *IfrEfiVarStore;\r
-  EFI_HII_PACKAGE_HEADER   *PackageHeader;\r
+  EFI_STATUS              Status;\r
+  UINTN                   IfrOffset;\r
+  UINTN                   PackageOffset;\r
+  EFI_IFR_OP_HEADER       *IfrOpHdr;\r
+  CHAR16                  *VarStoreName;\r
+  UINTN                   NameSize;\r
+  EFI_STRING              GuidStr;\r
+  EFI_STRING              NameStr;\r
+  EFI_STRING              TempStr;\r
+  UINTN                   LengthString;\r
+  UINT8                   *HiiFormPackage;\r
+  UINTN                   PackageSize;\r
+  EFI_IFR_VARSTORE_EFI    *IfrEfiVarStore;\r
+  EFI_HII_PACKAGE_HEADER  *PackageHeader;\r
 \r
   HiiFormPackage = NULL;\r
-  LengthString     = 0;\r
-  Status           = EFI_SUCCESS;\r
-  GuidStr          = NULL;\r
-  NameStr          = NULL;\r
-  TempStr          = NULL;\r
-  *IsEfiVarstore   = FALSE;\r
+  LengthString   = 0;\r
+  Status         = EFI_SUCCESS;\r
+  GuidStr        = NULL;\r
+  NameStr        = NULL;\r
+  TempStr        = NULL;\r
+  *IsEfiVarstore = FALSE;\r
 \r
-  Status = GetFormPackageData(DataBaseRecord, &HiiFormPackage, &PackageSize);\r
+  Status = GetFormPackageData (DataBaseRecord, &HiiFormPackage, &PackageSize);\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
 \r
   IfrOffset     = sizeof (EFI_HII_PACKAGE_HEADER);\r
   PackageOffset = IfrOffset;\r
-  PackageHeader = (EFI_HII_PACKAGE_HEADER *) HiiFormPackage;\r
+  PackageHeader = (EFI_HII_PACKAGE_HEADER *)HiiFormPackage;\r
 \r
   while (IfrOffset < PackageSize) {\r
     //\r
     // More than one form packages exist.\r
     //\r
     if (PackageOffset >= PackageHeader->Length) {\r
-        //\r
-        // Process the new form package.\r
-        //\r
-        PackageOffset = sizeof (EFI_HII_PACKAGE_HEADER);\r
-        IfrOffset    += PackageOffset;\r
-        PackageHeader = (EFI_HII_PACKAGE_HEADER *) (HiiFormPackage + IfrOffset);\r
+      //\r
+      // Process the new form package.\r
+      //\r
+      PackageOffset = sizeof (EFI_HII_PACKAGE_HEADER);\r
+      IfrOffset    += PackageOffset;\r
+      PackageHeader = (EFI_HII_PACKAGE_HEADER *)(HiiFormPackage + IfrOffset);\r
     }\r
 \r
-    IfrOpHdr  = (EFI_IFR_OP_HEADER *) (HiiFormPackage + IfrOffset);\r
-    IfrOffset += IfrOpHdr->Length;\r
+    IfrOpHdr       = (EFI_IFR_OP_HEADER *)(HiiFormPackage + IfrOffset);\r
+    IfrOffset     += IfrOpHdr->Length;\r
     PackageOffset += IfrOpHdr->Length;\r
 \r
     if (IfrOpHdr->OpCode == EFI_IFR_VARSTORE_EFI_OP ) {\r
-      IfrEfiVarStore = (EFI_IFR_VARSTORE_EFI *) IfrOpHdr;\r
+      IfrEfiVarStore = (EFI_IFR_VARSTORE_EFI *)IfrOpHdr;\r
       //\r
       // If the length is small than the structure, this is from old efi\r
       // varstore definition. Old efi varstore get config directly from\r
@@ -1676,19 +1718,20 @@ GetVarStoreType (
         continue;\r
       }\r
 \r
-      NameSize = AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name);\r
+      NameSize     = AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name);\r
       VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));\r
       if (VarStoreName == NULL) {\r
         Status = EFI_OUT_OF_RESOURCES;\r
         goto Done;\r
       }\r
-      AsciiStrToUnicodeStrS ((CHAR8 *) IfrEfiVarStore->Name, VarStoreName, NameSize);\r
 \r
-      GenerateSubStr (L"GUID=", sizeof (EFI_GUID), (VOID *) &IfrEfiVarStore->Guid, 1, &GuidStr);\r
-      GenerateSubStr (L"NAME=", StrLen (VarStoreName) * sizeof (CHAR16), (VOID *) VarStoreName, 2, &NameStr);\r
+      AsciiStrToUnicodeStrS ((CHAR8 *)IfrEfiVarStore->Name, VarStoreName, NameSize);\r
+\r
+      GenerateSubStr (L"GUID=", sizeof (EFI_GUID), (VOID *)&IfrEfiVarStore->Guid, 1, &GuidStr);\r
+      GenerateSubStr (L"NAME=", StrLen (VarStoreName) * sizeof (CHAR16), (VOID *)VarStoreName, 2, &NameStr);\r
       LengthString = StrLen (GuidStr);\r
       LengthString = LengthString + StrLen (NameStr) + 1;\r
-      TempStr = AllocateZeroPool (LengthString * sizeof (CHAR16));\r
+      TempStr      = AllocateZeroPool (LengthString * sizeof (CHAR16));\r
       if (TempStr == NULL) {\r
         FreePool (GuidStr);\r
         FreePool (NameStr);\r
@@ -1696,10 +1739,11 @@ GetVarStoreType (
         Status = EFI_OUT_OF_RESOURCES;\r
         goto Done;\r
       }\r
+\r
       StrCpyS (TempStr, LengthString, GuidStr);\r
       StrCatS (TempStr, LengthString, NameStr);\r
-      if (ConfigHdr == NULL || StrnCmp (ConfigHdr, TempStr, StrLen (TempStr)) == 0) {\r
-        *EfiVarStore = (EFI_IFR_VARSTORE_EFI *) AllocateZeroPool (IfrOpHdr->Length);\r
+      if ((ConfigHdr == NULL) || (StrnCmp (ConfigHdr, TempStr, StrLen (TempStr)) == 0)) {\r
+        *EfiVarStore = (EFI_IFR_VARSTORE_EFI *)AllocateZeroPool (IfrOpHdr->Length);\r
         if (*EfiVarStore == NULL) {\r
           FreePool (VarStoreName);\r
           FreePool (GuidStr);\r
@@ -1708,6 +1752,7 @@ GetVarStoreType (
           Status = EFI_OUT_OF_RESOURCES;\r
           goto Done;\r
         }\r
+\r
         *IsEfiVarstore = TRUE;\r
         CopyMem (*EfiVarStore, IfrEfiVarStore, IfrOpHdr->Length);\r
       }\r
@@ -1728,6 +1773,7 @@ GetVarStoreType (
       }\r
     }\r
   }\r
+\r
 Done:\r
   if (HiiFormPackage != NULL) {\r
     FreePool (HiiFormPackage);\r
@@ -1749,10 +1795,10 @@ Done:
 **/\r
 BOOLEAN\r
 GetElementsFromRequest (\r
-  IN EFI_STRING    ConfigRequest\r
+  IN EFI_STRING  ConfigRequest\r
   )\r
 {\r
-  EFI_STRING   TmpRequest;\r
+  EFI_STRING  TmpRequest;\r
 \r
   TmpRequest = StrStr (ConfigRequest, L"PATH=");\r
   ASSERT (TmpRequest != NULL);\r
@@ -1777,37 +1823,38 @@ GetElementsFromRequest (
 **/\r
 BOOLEAN\r
 IsThisVarstore (\r
-  IN EFI_GUID    *VarstoreGuid,\r
-  IN CHAR16      *Name,\r
-  IN CHAR16      *ConfigHdr\r
+  IN EFI_GUID  *VarstoreGuid,\r
+  IN CHAR16    *Name,\r
+  IN CHAR16    *ConfigHdr\r
   )\r
 {\r
-  EFI_STRING               GuidStr;\r
-  EFI_STRING               NameStr;\r
-  EFI_STRING               TempStr;\r
-  UINTN                    LengthString;\r
-  BOOLEAN                  RetVal;\r
+  EFI_STRING  GuidStr;\r
+  EFI_STRING  NameStr;\r
+  EFI_STRING  TempStr;\r
+  UINTN       LengthString;\r
+  BOOLEAN     RetVal;\r
 \r
-  RetVal       = FALSE;\r
-  GuidStr      = NULL;\r
-  TempStr      = NULL;\r
+  RetVal  = FALSE;\r
+  GuidStr = NULL;\r
+  TempStr = NULL;\r
 \r
   //\r
   // If ConfigHdr has name field and varstore not has name, return FALSE.\r
   //\r
-  if (Name == NULL && ConfigHdr != NULL && StrStr (ConfigHdr, L"NAME=&") == NULL) {\r
+  if ((Name == NULL) && (ConfigHdr != NULL) && (StrStr (ConfigHdr, L"NAME=&") == NULL)) {\r
     return FALSE;\r
   }\r
 \r
   GenerateSubStr (L"GUID=", sizeof (EFI_GUID), (VOID *)VarstoreGuid, 1, &GuidStr);\r
   if (Name != NULL) {\r
-    GenerateSubStr (L"NAME=", StrLen (Name) * sizeof (CHAR16), (VOID *) Name, 2, &NameStr);\r
+    GenerateSubStr (L"NAME=", StrLen (Name) * sizeof (CHAR16), (VOID *)Name, 2, &NameStr);\r
   } else {\r
     GenerateSubStr (L"NAME=", 0, NULL, 2, &NameStr);\r
   }\r
+\r
   LengthString = StrLen (GuidStr);\r
   LengthString = LengthString + StrLen (NameStr) + 1;\r
-  TempStr = AllocateZeroPool (LengthString * sizeof (CHAR16));\r
+  TempStr      = AllocateZeroPool (LengthString * sizeof (CHAR16));\r
   if (TempStr == NULL) {\r
     goto Done;\r
   }\r
@@ -1815,7 +1862,7 @@ IsThisVarstore (
   StrCpyS (TempStr, LengthString, GuidStr);\r
   StrCatS (TempStr, LengthString, NameStr);\r
 \r
-  if (ConfigHdr == NULL || StrnCmp (ConfigHdr, TempStr, StrLen (TempStr)) == 0) {\r
+  if ((ConfigHdr == NULL) || (StrnCmp (ConfigHdr, TempStr, StrLen (TempStr)) == 0)) {\r
     RetVal = TRUE;\r
   }\r
 \r
@@ -1846,114 +1893,119 @@ Done:
 **/\r
 BOOLEAN\r
 IsThisPackageList (\r
-  IN     HII_DATABASE_RECORD        *DataBaseRecord,\r
-  IN     EFI_STRING                 ConfigHdr\r
+  IN     HII_DATABASE_RECORD  *DataBaseRecord,\r
+  IN     EFI_STRING           ConfigHdr\r
   )\r
 {\r
-  EFI_STATUS               Status;\r
-  UINTN                    IfrOffset;\r
-  UINTN                    PackageOffset;\r
-  EFI_IFR_OP_HEADER        *IfrOpHdr;\r
-  CHAR16                   *VarStoreName;\r
-  UINTN                    NameSize;\r
-  UINT8                    *HiiFormPackage;\r
-  UINTN                    PackageSize;\r
-  EFI_IFR_VARSTORE_EFI     *IfrEfiVarStore;\r
-  EFI_HII_PACKAGE_HEADER   *PackageHeader;\r
-  EFI_IFR_VARSTORE         *IfrVarStore;\r
-  EFI_IFR_VARSTORE_NAME_VALUE *IfrNameValueVarStore;\r
-  BOOLEAN                  FindVarstore;\r
-\r
-  HiiFormPackage   = NULL;\r
-  VarStoreName     = NULL;\r
-  Status           = EFI_SUCCESS;\r
-  FindVarstore     = FALSE;\r
+  EFI_STATUS                   Status;\r
+  UINTN                        IfrOffset;\r
+  UINTN                        PackageOffset;\r
+  EFI_IFR_OP_HEADER            *IfrOpHdr;\r
+  CHAR16                       *VarStoreName;\r
+  UINTN                        NameSize;\r
+  UINT8                        *HiiFormPackage;\r
+  UINTN                        PackageSize;\r
+  EFI_IFR_VARSTORE_EFI         *IfrEfiVarStore;\r
+  EFI_HII_PACKAGE_HEADER       *PackageHeader;\r
+  EFI_IFR_VARSTORE             *IfrVarStore;\r
+  EFI_IFR_VARSTORE_NAME_VALUE  *IfrNameValueVarStore;\r
+  BOOLEAN                      FindVarstore;\r
+\r
+  HiiFormPackage = NULL;\r
+  VarStoreName   = NULL;\r
+  Status         = EFI_SUCCESS;\r
+  FindVarstore   = FALSE;\r
 \r
-  Status = GetFormPackageData(DataBaseRecord, &HiiFormPackage, &PackageSize);\r
+  Status = GetFormPackageData (DataBaseRecord, &HiiFormPackage, &PackageSize);\r
   if (EFI_ERROR (Status)) {\r
     return FALSE;\r
   }\r
 \r
   IfrOffset     = sizeof (EFI_HII_PACKAGE_HEADER);\r
   PackageOffset = IfrOffset;\r
-  PackageHeader = (EFI_HII_PACKAGE_HEADER *) HiiFormPackage;\r
+  PackageHeader = (EFI_HII_PACKAGE_HEADER *)HiiFormPackage;\r
 \r
   while (IfrOffset < PackageSize) {\r
     //\r
     // More than one form packages exist.\r
     //\r
     if (PackageOffset >= PackageHeader->Length) {\r
-        //\r
-        // Process the new form package.\r
-        //\r
-        PackageOffset = sizeof (EFI_HII_PACKAGE_HEADER);\r
-        IfrOffset    += PackageOffset;\r
-        PackageHeader = (EFI_HII_PACKAGE_HEADER *) (HiiFormPackage + IfrOffset);\r
+      //\r
+      // Process the new form package.\r
+      //\r
+      PackageOffset = sizeof (EFI_HII_PACKAGE_HEADER);\r
+      IfrOffset    += PackageOffset;\r
+      PackageHeader = (EFI_HII_PACKAGE_HEADER *)(HiiFormPackage + IfrOffset);\r
     }\r
 \r
-    IfrOpHdr  = (EFI_IFR_OP_HEADER *) (HiiFormPackage + IfrOffset);\r
-    IfrOffset += IfrOpHdr->Length;\r
+    IfrOpHdr       = (EFI_IFR_OP_HEADER *)(HiiFormPackage + IfrOffset);\r
+    IfrOffset     += IfrOpHdr->Length;\r
     PackageOffset += IfrOpHdr->Length;\r
 \r
     switch (IfrOpHdr->OpCode) {\r
+      case EFI_IFR_VARSTORE_OP:\r
+        IfrVarStore = (EFI_IFR_VARSTORE *)IfrOpHdr;\r
 \r
-    case EFI_IFR_VARSTORE_OP:\r
-      IfrVarStore = (EFI_IFR_VARSTORE *) IfrOpHdr;\r
+        NameSize     = AsciiStrSize ((CHAR8 *)IfrVarStore->Name);\r
+        VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));\r
+        if (VarStoreName == NULL) {\r
+          goto Done;\r
+        }\r
 \r
-      NameSize = AsciiStrSize ((CHAR8 *)IfrVarStore->Name);\r
-      VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));\r
-      if (VarStoreName == NULL) {\r
-        goto Done;\r
-      }\r
-      AsciiStrToUnicodeStrS ((CHAR8 *)IfrVarStore->Name, VarStoreName, NameSize);\r
+        AsciiStrToUnicodeStrS ((CHAR8 *)IfrVarStore->Name, VarStoreName, NameSize);\r
 \r
-      if (IsThisVarstore((VOID *)&IfrVarStore->Guid, VarStoreName, ConfigHdr)) {\r
-        FindVarstore = TRUE;\r
-        goto Done;\r
-      } else {\r
-        FreePool (VarStoreName);\r
-        VarStoreName = NULL;\r
-      }\r
-      break;\r
+        if (IsThisVarstore ((VOID *)&IfrVarStore->Guid, VarStoreName, ConfigHdr)) {\r
+          FindVarstore = TRUE;\r
+          goto Done;\r
+        } else {\r
+          FreePool (VarStoreName);\r
+          VarStoreName = NULL;\r
+        }\r
 \r
-    case EFI_IFR_VARSTORE_EFI_OP:\r
-      IfrEfiVarStore = (EFI_IFR_VARSTORE_EFI *) IfrOpHdr;\r
-      NameSize = AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name);\r
-      VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));\r
-      if (VarStoreName == NULL) {\r
-        goto Done;\r
-      }\r
-      AsciiStrToUnicodeStrS ((CHAR8 *)IfrEfiVarStore->Name, VarStoreName, NameSize);\r
+        break;\r
 \r
-      if (IsThisVarstore (&IfrEfiVarStore->Guid, VarStoreName, ConfigHdr)) {\r
-        FindVarstore = TRUE;\r
-        goto Done;\r
-      } else {\r
-        FreePool (VarStoreName);\r
-        VarStoreName = NULL;\r
-      }\r
-      break;\r
+      case EFI_IFR_VARSTORE_EFI_OP:\r
+        IfrEfiVarStore = (EFI_IFR_VARSTORE_EFI *)IfrOpHdr;\r
+        NameSize       = AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name);\r
+        VarStoreName   = AllocateZeroPool (NameSize * sizeof (CHAR16));\r
+        if (VarStoreName == NULL) {\r
+          goto Done;\r
+        }\r
 \r
-    case EFI_IFR_VARSTORE_NAME_VALUE_OP:\r
-      IfrNameValueVarStore = (EFI_IFR_VARSTORE_NAME_VALUE *) IfrOpHdr;\r
+        AsciiStrToUnicodeStrS ((CHAR8 *)IfrEfiVarStore->Name, VarStoreName, NameSize);\r
 \r
-      if (IsThisVarstore (&IfrNameValueVarStore->Guid, NULL, ConfigHdr)) {\r
-        FindVarstore = TRUE;\r
-        goto Done;\r
-      }\r
-      break;\r
+        if (IsThisVarstore (&IfrEfiVarStore->Guid, VarStoreName, ConfigHdr)) {\r
+          FindVarstore = TRUE;\r
+          goto Done;\r
+        } else {\r
+          FreePool (VarStoreName);\r
+          VarStoreName = NULL;\r
+        }\r
 \r
-    case EFI_IFR_FORM_OP:\r
-    case EFI_IFR_FORM_MAP_OP:\r
-      //\r
-      // No matched varstore is found and directly return.\r
-      //\r
-      goto Done;\r
+        break;\r
 \r
-    default:\r
-      break;\r
+      case EFI_IFR_VARSTORE_NAME_VALUE_OP:\r
+        IfrNameValueVarStore = (EFI_IFR_VARSTORE_NAME_VALUE *)IfrOpHdr;\r
+\r
+        if (IsThisVarstore (&IfrNameValueVarStore->Guid, NULL, ConfigHdr)) {\r
+          FindVarstore = TRUE;\r
+          goto Done;\r
+        }\r
+\r
+        break;\r
+\r
+      case EFI_IFR_FORM_OP:\r
+      case EFI_IFR_FORM_MAP_OP:\r
+        //\r
+        // No matched varstore is found and directly return.\r
+        //\r
+        goto Done;\r
+\r
+      default:\r
+        break;\r
     }\r
   }\r
+\r
 Done:\r
   if (HiiFormPackage != NULL) {\r
     FreePool (HiiFormPackage);\r
@@ -1984,13 +2036,13 @@ Done:
 **/\r
 EFI_STATUS\r
 IsThisOpcodeRequired (\r
-  IN     IFR_BLOCK_DATA           *RequestBlockArray,\r
-  IN     EFI_HII_HANDLE           HiiHandle,\r
-  IN OUT IFR_VARSTORAGE_DATA      *VarStorageData,\r
-  IN     EFI_IFR_OP_HEADER        *IfrOpHdr,\r
-  IN     UINT16                   VarWidth,\r
-  OUT    IFR_BLOCK_DATA           **ReturnData,\r
-  IN     BOOLEAN                  IsBitVar\r
+  IN     IFR_BLOCK_DATA       *RequestBlockArray,\r
+  IN     EFI_HII_HANDLE       HiiHandle,\r
+  IN OUT IFR_VARSTORAGE_DATA  *VarStorageData,\r
+  IN     EFI_IFR_OP_HEADER    *IfrOpHdr,\r
+  IN     UINT16               VarWidth,\r
+  OUT    IFR_BLOCK_DATA       **ReturnData,\r
+  IN     BOOLEAN              IsBitVar\r
   )\r
 {\r
   IFR_BLOCK_DATA           *BlockData;\r
@@ -2001,11 +2053,11 @@ IsThisOpcodeRequired (
   UINT16                   BitWidth;\r
   UINT16                   TotalBits;\r
 \r
-  NameId    = 0;\r
-  VarOffset = 0;\r
-  BitOffset = 0;\r
-  BitWidth = 0;\r
-  IfrQuestionHdr = (EFI_IFR_QUESTION_HEADER  *)((CHAR8 *) IfrOpHdr + sizeof (EFI_IFR_OP_HEADER));\r
+  NameId         = 0;\r
+  VarOffset      = 0;\r
+  BitOffset      = 0;\r
+  BitWidth       = 0;\r
+  IfrQuestionHdr = (EFI_IFR_QUESTION_HEADER  *)((CHAR8 *)IfrOpHdr + sizeof (EFI_IFR_OP_HEADER));\r
 \r
   if (VarStorageData->Type == EFI_HII_VARSTORE_NAME_VALUE) {\r
     NameId = IfrQuestionHdr->VarStoreInfo.VarName;\r
@@ -2025,16 +2077,16 @@ IsThisOpcodeRequired (
     //\r
     if (IsBitVar) {\r
       BitOffset = IfrQuestionHdr->VarStoreInfo.VarOffset;\r
-      BitWidth = VarWidth;\r
+      BitWidth  = VarWidth;\r
       VarOffset = BitOffset / 8;\r
       //\r
       // Use current bit width and the bit width before current bit (with same byte offset) to calculate the byte width.\r
       //\r
       TotalBits = BitOffset % 8 + BitWidth;\r
-      VarWidth = (TotalBits % 8 == 0 ? TotalBits / 8: TotalBits / 8 + 1);\r
+      VarWidth  = (TotalBits % 8 == 0 ? TotalBits / 8 : TotalBits / 8 + 1);\r
     } else {\r
       VarOffset = IfrQuestionHdr->VarStoreInfo.VarOffset;\r
-      BitWidth = VarWidth;\r
+      BitWidth  = VarWidth;\r
       BitOffset = VarOffset * 8;\r
     }\r
 \r
@@ -2056,13 +2108,13 @@ IsThisOpcodeRequired (
     }\r
   }\r
 \r
-  BlockData = (IFR_BLOCK_DATA *) AllocateZeroPool (sizeof (IFR_BLOCK_DATA));\r
+  BlockData = (IFR_BLOCK_DATA *)AllocateZeroPool (sizeof (IFR_BLOCK_DATA));\r
   if (BlockData == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
 \r
   if (VarStorageData->Type == EFI_HII_VARSTORE_NAME_VALUE) {\r
-    BlockData->Name   = InternalGetString(HiiHandle, NameId);\r
+    BlockData->Name = InternalGetString (HiiHandle, NameId);\r
   } else {\r
     BlockData->Offset = VarOffset;\r
   }\r
@@ -2105,49 +2157,51 @@ IsThisOpcodeRequired (
 EFI_STATUS\r
 EFIAPI\r
 ParseIfrData (\r
-  IN     EFI_HII_HANDLE      HiiHandle,\r
-  IN     UINT8               *Package,\r
-  IN     UINT32              PackageLength,\r
-  IN     EFI_STRING          ConfigHdr,\r
-  IN     IFR_BLOCK_DATA      *RequestBlockArray,\r
-  IN OUT IFR_VARSTORAGE_DATA *VarStorageData,\r
-  OUT    IFR_DEFAULT_DATA    *DefaultIdArray\r
+  IN     EFI_HII_HANDLE       HiiHandle,\r
+  IN     UINT8                *Package,\r
+  IN     UINT32               PackageLength,\r
+  IN     EFI_STRING           ConfigHdr,\r
+  IN     IFR_BLOCK_DATA       *RequestBlockArray,\r
+  IN OUT IFR_VARSTORAGE_DATA  *VarStorageData,\r
+  OUT    IFR_DEFAULT_DATA     *DefaultIdArray\r
   )\r
 {\r
-  EFI_STATUS               Status;\r
-  UINTN                    IfrOffset;\r
-  UINTN                    PackageOffset;\r
-  EFI_IFR_VARSTORE         *IfrVarStore;\r
-  EFI_IFR_VARSTORE_EFI     *IfrEfiVarStore;\r
-  EFI_IFR_OP_HEADER        *IfrOpHdr;\r
-  EFI_IFR_ONE_OF           *IfrOneOf;\r
-  EFI_IFR_REF4             *IfrRef;\r
-  EFI_IFR_ONE_OF_OPTION    *IfrOneOfOption;\r
-  EFI_IFR_DEFAULT          *IfrDefault;\r
-  EFI_IFR_ORDERED_LIST     *IfrOrderedList;\r
-  EFI_IFR_CHECKBOX         *IfrCheckBox;\r
-  EFI_IFR_PASSWORD         *IfrPassword;\r
-  EFI_IFR_STRING           *IfrString;\r
-  EFI_IFR_DATE             *IfrDate;\r
-  EFI_IFR_TIME             *IfrTime;\r
-  IFR_DEFAULT_DATA         DefaultData;\r
-  IFR_DEFAULT_DATA         *DefaultDataPtr;\r
-  IFR_BLOCK_DATA           *BlockData;\r
-  CHAR16                   *VarStoreName;\r
-  UINTN                    NameSize;\r
-  UINT16                   VarWidth;\r
-  UINT16                   VarDefaultId;\r
-  BOOLEAN                  FirstOneOfOption;\r
-  BOOLEAN                  FirstOrderedList;\r
-  LIST_ENTRY               *LinkData;\r
-  LIST_ENTRY               *LinkDefault;\r
-  EFI_IFR_VARSTORE_NAME_VALUE *IfrNameValueVarStore;\r
-  EFI_HII_PACKAGE_HEADER   *PackageHeader;\r
-  EFI_VARSTORE_ID          VarStoreId;\r
-  UINT16                   SmallestDefaultId;\r
-  BOOLEAN                  SmallestIdFromFlag;\r
-  BOOLEAN                  FromOtherDefaultOpcode;\r
-  BOOLEAN                  QuestionReferBitField;\r
+  EFI_STATUS                   Status;\r
+  UINTN                        IfrOffset;\r
+  UINTN                        PackageOffset;\r
+  EFI_IFR_VARSTORE             *IfrVarStore;\r
+  EFI_IFR_VARSTORE_EFI         *IfrEfiVarStore;\r
+  EFI_IFR_VARSTORE_EFI         *IfrEfiVarStoreTmp;\r
+  EFI_IFR_OP_HEADER            *IfrOpHdr;\r
+  EFI_IFR_ONE_OF               *IfrOneOf;\r
+  EFI_IFR_REF4                 *IfrRef;\r
+  EFI_IFR_ONE_OF_OPTION        *IfrOneOfOption;\r
+  EFI_IFR_DEFAULT              *IfrDefault;\r
+  EFI_IFR_ORDERED_LIST         *IfrOrderedList;\r
+  EFI_IFR_CHECKBOX             *IfrCheckBox;\r
+  EFI_IFR_PASSWORD             *IfrPassword;\r
+  EFI_IFR_STRING               *IfrString;\r
+  EFI_IFR_DATE                 *IfrDate;\r
+  EFI_IFR_TIME                 *IfrTime;\r
+  IFR_DEFAULT_DATA             DefaultData;\r
+  IFR_DEFAULT_DATA             *DefaultDataPtr;\r
+  IFR_BLOCK_DATA               *BlockData;\r
+  CHAR16                       *VarStoreName;\r
+  UINTN                        NameSize;\r
+  UINTN                        NvDefaultStoreSize;\r
+  UINT16                       VarWidth;\r
+  UINT16                       VarDefaultId;\r
+  BOOLEAN                      FirstOneOfOption;\r
+  BOOLEAN                      FirstOrderedList;\r
+  LIST_ENTRY                   *LinkData;\r
+  LIST_ENTRY                   *LinkDefault;\r
+  EFI_IFR_VARSTORE_NAME_VALUE  *IfrNameValueVarStore;\r
+  EFI_HII_PACKAGE_HEADER       *PackageHeader;\r
+  EFI_VARSTORE_ID              VarStoreId;\r
+  UINT16                       SmallestDefaultId;\r
+  BOOLEAN                      SmallestIdFromFlag;\r
+  BOOLEAN                      FromOtherDefaultOpcode;\r
+  BOOLEAN                      QuestionReferBitField;\r
 \r
   Status           = EFI_SUCCESS;\r
   BlockData        = NULL;\r
@@ -2157,912 +2211,980 @@ ParseIfrData (
   FirstOrderedList = FALSE;\r
   VarStoreName     = NULL;\r
   ZeroMem (&DefaultData, sizeof (IFR_DEFAULT_DATA));\r
-  SmallestDefaultId = 0xFFFF;\r
+  SmallestDefaultId      = 0xFFFF;\r
   FromOtherDefaultOpcode = FALSE;\r
-  QuestionReferBitField = FALSE;\r
+  QuestionReferBitField  = FALSE;\r
+  IfrEfiVarStoreTmp      = NULL;\r
 \r
   //\r
   // Go through the form package to parse OpCode one by one.\r
   //\r
   PackageOffset = sizeof (EFI_HII_PACKAGE_HEADER);\r
-  PackageHeader = (EFI_HII_PACKAGE_HEADER *) Package;\r
+  PackageHeader = (EFI_HII_PACKAGE_HEADER *)Package;\r
   IfrOffset     = PackageOffset;\r
   while (IfrOffset < PackageLength) {\r
-\r
     //\r
     // More than one form package found.\r
     //\r
     if (PackageOffset >= PackageHeader->Length) {\r
-        //\r
-        // Already found varstore for this request, break;\r
-        //\r
-        if (VarStoreId != 0) {\r
-          VarStoreId = 0;\r
-        }\r
-\r
-        //\r
-        // Get next package header info.\r
-        //\r
-        IfrOffset    += sizeof (EFI_HII_PACKAGE_HEADER);\r
-        PackageOffset = sizeof (EFI_HII_PACKAGE_HEADER);\r
-        PackageHeader = (EFI_HII_PACKAGE_HEADER *) (Package + IfrOffset);\r
-    }\r
-\r
-    IfrOpHdr  = (EFI_IFR_OP_HEADER *) (Package + IfrOffset);\r
-    switch (IfrOpHdr->OpCode) {\r
-    case EFI_IFR_VARSTORE_OP:\r
       //\r
-      // VarStore is found. Don't need to search any more.\r
+      // Already found varstore for this request, break;\r
       //\r
       if (VarStoreId != 0) {\r
-        break;\r
+        VarStoreId = 0;\r
       }\r
 \r
-      IfrVarStore = (EFI_IFR_VARSTORE *) IfrOpHdr;\r
-\r
-      NameSize = AsciiStrSize ((CHAR8 *)IfrVarStore->Name);\r
-      VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));\r
-      if (VarStoreName == NULL) {\r
-        Status = EFI_OUT_OF_RESOURCES;\r
-        goto Done;\r
-      }\r
-      AsciiStrToUnicodeStrS ((CHAR8 *)IfrVarStore->Name, VarStoreName, NameSize);\r
+      //\r
+      // Get next package header info.\r
+      //\r
+      IfrOffset    += sizeof (EFI_HII_PACKAGE_HEADER);\r
+      PackageOffset = sizeof (EFI_HII_PACKAGE_HEADER);\r
+      PackageHeader = (EFI_HII_PACKAGE_HEADER *)(Package + IfrOffset);\r
+    }\r
 \r
-      if (IsThisVarstore((VOID *)&IfrVarStore->Guid, VarStoreName, ConfigHdr)) {\r
+    IfrOpHdr = (EFI_IFR_OP_HEADER *)(Package + IfrOffset);\r
+    switch (IfrOpHdr->OpCode) {\r
+      case EFI_IFR_VARSTORE_OP:\r
         //\r
-        // Find the matched VarStore\r
+        // VarStore is found. Don't need to search any more.\r
         //\r
-        CopyGuid (&VarStorageData->Guid, (EFI_GUID *) (VOID *) &IfrVarStore->Guid);\r
-        VarStorageData->Size       = IfrVarStore->Size;\r
-        VarStorageData->Name       = VarStoreName;\r
-        VarStorageData->Type       = EFI_HII_VARSTORE_BUFFER;\r
-        VarStoreId                 = IfrVarStore->VarStoreId;\r
-      } else {\r
-        FreePool (VarStoreName);\r
-        VarStoreName = NULL;\r
-      }\r
-      break;\r
+        if (VarStoreId != 0) {\r
+          break;\r
+        }\r
 \r
-    case EFI_IFR_VARSTORE_EFI_OP:\r
-      //\r
-      // VarStore is found. Don't need to search any more.\r
-      //\r
-      if (VarStoreId != 0) {\r
-        break;\r
-      }\r
+        IfrVarStore = (EFI_IFR_VARSTORE *)IfrOpHdr;\r
 \r
-      IfrEfiVarStore = (EFI_IFR_VARSTORE_EFI *) IfrOpHdr;\r
+        NameSize     = AsciiStrSize ((CHAR8 *)IfrVarStore->Name);\r
+        VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));\r
+        if (VarStoreName == NULL) {\r
+          Status = EFI_OUT_OF_RESOURCES;\r
+          goto Done;\r
+        }\r
 \r
-      //\r
-      // If the length is small than the structure, this is from old efi\r
-      // varstore definition. Old efi varstore get config directly from\r
-      // GetVariable function.\r
-      //\r
-      if (IfrOpHdr->Length < sizeof (EFI_IFR_VARSTORE_EFI)) {\r
-        break;\r
-      }\r
+        AsciiStrToUnicodeStrS ((CHAR8 *)IfrVarStore->Name, VarStoreName, NameSize);\r
 \r
-      NameSize = AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name);\r
-      VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));\r
-      if (VarStoreName == NULL) {\r
-        Status = EFI_OUT_OF_RESOURCES;\r
-        goto Done;\r
-      }\r
-      AsciiStrToUnicodeStrS ((CHAR8 *)IfrEfiVarStore->Name, VarStoreName, NameSize);\r
+        if (IsThisVarstore ((VOID *)&IfrVarStore->Guid, VarStoreName, ConfigHdr)) {\r
+          //\r
+          // Find the matched VarStore\r
+          //\r
+          CopyGuid (&VarStorageData->Guid, (EFI_GUID *)(VOID *)&IfrVarStore->Guid);\r
+          VarStorageData->Size = IfrVarStore->Size;\r
+          VarStorageData->Name = VarStoreName;\r
+          VarStorageData->Type = EFI_HII_VARSTORE_BUFFER;\r
+          VarStoreId           = IfrVarStore->VarStoreId;\r
+        } else {\r
+          FreePool (VarStoreName);\r
+          VarStoreName = NULL;\r
+        }\r
+\r
+        break;\r
 \r
-      if (IsThisVarstore (&IfrEfiVarStore->Guid, VarStoreName, ConfigHdr)) {\r
+      case EFI_IFR_VARSTORE_EFI_OP:\r
         //\r
-        // Find the matched VarStore\r
+        // VarStore is found. Don't need to search any more.\r
         //\r
-        CopyGuid (&VarStorageData->Guid, (EFI_GUID *) (VOID *) &IfrEfiVarStore->Guid);\r
-        VarStorageData->Size       = IfrEfiVarStore->Size;\r
-        VarStorageData->Name       = VarStoreName;\r
-        VarStorageData->Type       = EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER;\r
-        VarStoreId                 = IfrEfiVarStore->VarStoreId;\r
-      } else {\r
-        FreePool (VarStoreName);\r
-        VarStoreName = NULL;\r
-      }\r
-      break;\r
-\r
-    case EFI_IFR_VARSTORE_NAME_VALUE_OP:\r
-      //\r
-      // VarStore is found. Don't need to search any more.\r
-      //\r
-      if (VarStoreId != 0) {\r
-        break;\r
-      }\r
+        if (VarStoreId != 0) {\r
+          break;\r
+        }\r
 \r
-      IfrNameValueVarStore = (EFI_IFR_VARSTORE_NAME_VALUE *) IfrOpHdr;\r
+        IfrEfiVarStore = (EFI_IFR_VARSTORE_EFI *)IfrOpHdr;\r
 \r
-      if (IsThisVarstore (&IfrNameValueVarStore->Guid, NULL, ConfigHdr)) {\r
         //\r
-        // Find the matched VarStore\r
+        // If the length is small than the structure, this is from old efi\r
+        // varstore definition. Old efi varstore get config directly from\r
+        // GetVariable function.\r
         //\r
-        CopyGuid (&VarStorageData->Guid, (EFI_GUID *) (VOID *) &IfrNameValueVarStore->Guid);\r
-        VarStorageData->Type       = EFI_HII_VARSTORE_NAME_VALUE;\r
-        VarStoreId                 = IfrNameValueVarStore->VarStoreId;\r
-      }\r
-      break;\r
+        if (IfrOpHdr->Length < sizeof (EFI_IFR_VARSTORE_EFI)) {\r
+          break;\r
+        }\r
 \r
-    case EFI_IFR_DEFAULTSTORE_OP:\r
-      //\r
-      // Add new the map between default id and default name.\r
-      //\r
-      DefaultDataPtr = (IFR_DEFAULT_DATA *) AllocateZeroPool (sizeof (IFR_DEFAULT_DATA));\r
-      if (DefaultDataPtr == NULL) {\r
-        Status = EFI_OUT_OF_RESOURCES;\r
-        goto Done;\r
-      }\r
-      DefaultDataPtr->DefaultId   = ((EFI_IFR_DEFAULTSTORE *) IfrOpHdr)->DefaultId;\r
-      InsertTailList (&DefaultIdArray->Entry, &DefaultDataPtr->Entry);\r
-      DefaultDataPtr = NULL;\r
-      break;\r
+        NameSize     = AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name);\r
+        VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));\r
+        if (VarStoreName == NULL) {\r
+          Status = EFI_OUT_OF_RESOURCES;\r
+          goto Done;\r
+        }\r
 \r
-    case EFI_IFR_FORM_OP:\r
-    case EFI_IFR_FORM_MAP_OP:\r
-      //\r
-      // No matched varstore is found and directly return.\r
-      //\r
-      if ( VarStoreId == 0) {\r
-        Status = EFI_SUCCESS;\r
-        goto Done;\r
-      }\r
-      break;\r
+        AsciiStrToUnicodeStrS ((CHAR8 *)IfrEfiVarStore->Name, VarStoreName, NameSize);\r
+        if (IfrEfiVarStoreTmp != NULL) {\r
+          FreePool (IfrEfiVarStoreTmp);\r
+        }\r
 \r
-    case EFI_IFR_REF_OP:\r
-      //\r
-      // Ref question is not in IFR Form. This IFR form is not valid.\r
-      //\r
-      if ( VarStoreId == 0) {\r
-        Status = EFI_INVALID_PARAMETER;\r
-        goto Done;\r
-      }\r
-      //\r
-      // Check whether this question is for the requested varstore.\r
-      //\r
-      IfrRef = (EFI_IFR_REF4 *) IfrOpHdr;\r
-      if (IfrRef->Question.VarStoreId != VarStoreId) {\r
-        break;\r
-      }\r
-      VarWidth  = (UINT16) (sizeof (EFI_HII_REF));\r
+        IfrEfiVarStoreTmp = AllocatePool (IfrEfiVarStore->Header.Length + AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name));\r
+        if (IfrEfiVarStoreTmp == NULL) {\r
+          Status = EFI_OUT_OF_RESOURCES;\r
+          goto Done;\r
+        }\r
 \r
-      //\r
-      // The BlockData may allocate by other opcode,need to clean.\r
-      //\r
-      if (BlockData != NULL){\r
-        BlockData = NULL;\r
-      }\r
+        CopyMem (IfrEfiVarStoreTmp, IfrEfiVarStore, IfrEfiVarStore->Header.Length);\r
+        AsciiStrToUnicodeStrS ((CHAR8 *)IfrEfiVarStore->Name, (CHAR16 *)&(IfrEfiVarStoreTmp->Name[0]), AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name) * sizeof (CHAR16));\r
 \r
-      Status = IsThisOpcodeRequired(RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, FALSE);\r
-      if (EFI_ERROR (Status)) {\r
-        if (Status == EFI_NOT_FOUND){\r
+        if (IsThisVarstore (&IfrEfiVarStore->Guid, VarStoreName, ConfigHdr)) {\r
           //\r
-          //The opcode is not required,exit and parse other opcode.\r
+          // Find the matched VarStore\r
           //\r
-          break;\r
+          CopyGuid (&VarStorageData->Guid, (EFI_GUID *)(VOID *)&IfrEfiVarStore->Guid);\r
+          VarStorageData->Size = IfrEfiVarStore->Size;\r
+          VarStorageData->Name = VarStoreName;\r
+          VarStorageData->Type = EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER;\r
+          VarStoreId           = IfrEfiVarStore->VarStoreId;\r
+        } else {\r
+          FreePool (VarStoreName);\r
+          VarStoreName = NULL;\r
         }\r
-        goto Done;\r
-      }\r
-      break;\r
 \r
-    case EFI_IFR_ONE_OF_OP:\r
-    case EFI_IFR_NUMERIC_OP:\r
-      //\r
-      // Numeric and OneOf has the same opcode structure.\r
-      //\r
-\r
-      //\r
-      // Numeric and OneOf question is not in IFR Form. This IFR form is not valid.\r
-      //\r
-      if (VarStoreId == 0) {\r
-        Status = EFI_INVALID_PARAMETER;\r
-        goto Done;\r
-      }\r
-      //\r
-      // Check whether this question is for the requested varstore.\r
-      //\r
-      IfrOneOf = (EFI_IFR_ONE_OF *) IfrOpHdr;\r
-      if (IfrOneOf->Question.VarStoreId != VarStoreId) {\r
         break;\r
-      }\r
 \r
-      if (QuestionReferBitField) {\r
-        VarWidth = IfrOneOf->Flags & EDKII_IFR_NUMERIC_SIZE_BIT;\r
-      } else {\r
-        VarWidth  = (UINT16) (1 << (IfrOneOf->Flags & EFI_IFR_NUMERIC_SIZE));\r
-      }\r
+      case EFI_IFR_VARSTORE_NAME_VALUE_OP:\r
+        //\r
+        // VarStore is found. Don't need to search any more.\r
+        //\r
+        if (VarStoreId != 0) {\r
+          break;\r
+        }\r
 \r
-      //\r
-      // The BlockData may allocate by other opcode,need to clean.\r
-      //\r
-      if (BlockData != NULL){\r
-        BlockData = NULL;\r
-      }\r
+        IfrNameValueVarStore = (EFI_IFR_VARSTORE_NAME_VALUE *)IfrOpHdr;\r
 \r
-      Status = IsThisOpcodeRequired(RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, QuestionReferBitField);\r
-      if (EFI_ERROR (Status)) {\r
-        if (Status == EFI_NOT_FOUND){\r
+        if (IsThisVarstore (&IfrNameValueVarStore->Guid, NULL, ConfigHdr)) {\r
           //\r
-          //The opcode is not required,exit and parse other opcode.\r
+          // Find the matched VarStore\r
           //\r
-          break;\r
+          CopyGuid (&VarStorageData->Guid, (EFI_GUID *)(VOID *)&IfrNameValueVarStore->Guid);\r
+          VarStorageData->Type = EFI_HII_VARSTORE_NAME_VALUE;\r
+          VarStoreId           = IfrNameValueVarStore->VarStoreId;\r
         }\r
-        goto Done;\r
-      }\r
 \r
-      //\r
-      //when go to there,BlockData can't be NULLL.\r
-      //\r
-      ASSERT (BlockData != NULL);\r
+        break;\r
 \r
-      if (IfrOpHdr->OpCode == EFI_IFR_ONE_OF_OP) {\r
+      case EFI_IFR_DEFAULTSTORE_OP:\r
         //\r
-        // Set this flag to TRUE for the first oneof option.\r
+        // Add new the map between default id and default name.\r
         //\r
-        FirstOneOfOption = TRUE;\r
-      } else if (IfrOpHdr->OpCode == EFI_IFR_NUMERIC_OP) {\r
+        DefaultDataPtr = (IFR_DEFAULT_DATA *)AllocateZeroPool (sizeof (IFR_DEFAULT_DATA));\r
+        if (DefaultDataPtr == NULL) {\r
+          Status = EFI_OUT_OF_RESOURCES;\r
+          goto Done;\r
+        }\r
+\r
+        DefaultDataPtr->DefaultId = ((EFI_IFR_DEFAULTSTORE *)IfrOpHdr)->DefaultId;\r
+        InsertTailList (&DefaultIdArray->Entry, &DefaultDataPtr->Entry);\r
+        DefaultDataPtr = NULL;\r
+        break;\r
+\r
+      case EFI_IFR_FORM_OP:\r
+      case EFI_IFR_FORM_MAP_OP:\r
         //\r
-        // Numeric minimum value will be used as default value when no default is specified.\r
+        // No matched varstore is found and directly return.\r
         //\r
-        DefaultData.Type        = DefaultValueFromDefault;\r
-        if (QuestionReferBitField) {\r
-          //\r
-          // Since default value in bit field was stored as UINT32 type.\r
-          //\r
-          CopyMem (&DefaultData.Value.u32, &IfrOneOf->data.u32.MinValue, sizeof (UINT32));\r
-        } else {\r
-          switch (IfrOneOf->Flags & EFI_IFR_NUMERIC_SIZE) {\r
-          case EFI_IFR_NUMERIC_SIZE_1:\r
-            DefaultData.Value.u8 = IfrOneOf->data.u8.MinValue;\r
-            break;\r
+        if ( VarStoreId == 0) {\r
+          Status = EFI_SUCCESS;\r
+          goto Done;\r
+        }\r
 \r
-          case EFI_IFR_NUMERIC_SIZE_2:\r
-           CopyMem (&DefaultData.Value.u16, &IfrOneOf->data.u16.MinValue, sizeof (UINT16));\r
-           break;\r
+        break;\r
 \r
-          case EFI_IFR_NUMERIC_SIZE_4:\r
-            CopyMem (&DefaultData.Value.u32, &IfrOneOf->data.u32.MinValue, sizeof (UINT32));\r
-            break;\r
+      case EFI_IFR_REF_OP:\r
+        //\r
+        // Ref question is not in IFR Form. This IFR form is not valid.\r
+        //\r
+        if ( VarStoreId == 0) {\r
+          Status = EFI_INVALID_PARAMETER;\r
+          goto Done;\r
+        }\r
 \r
-          case EFI_IFR_NUMERIC_SIZE_8:\r
-            CopyMem (&DefaultData.Value.u64, &IfrOneOf->data.u64.MinValue, sizeof (UINT64));\r
+        //\r
+        // Check whether this question is for the requested varstore.\r
+        //\r
+        IfrRef = (EFI_IFR_REF4 *)IfrOpHdr;\r
+        if (IfrRef->Question.VarStoreId != VarStoreId) {\r
+          break;\r
+        }\r
+\r
+        VarWidth = (UINT16)(sizeof (EFI_HII_REF));\r
+\r
+        //\r
+        // The BlockData may allocate by other opcode,need to clean.\r
+        //\r
+        if (BlockData != NULL) {\r
+          BlockData = NULL;\r
+        }\r
+\r
+        Status = IsThisOpcodeRequired (RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, FALSE);\r
+        if (EFI_ERROR (Status)) {\r
+          if (Status == EFI_NOT_FOUND) {\r
+            //\r
+            // The opcode is not required,exit and parse other opcode.\r
+            //\r
             break;\r
+          }\r
 \r
-          default:\r
-            Status = EFI_INVALID_PARAMETER;\r
-            goto Done;\r
-         }\r
+          goto Done;\r
         }\r
+\r
+        break;\r
+\r
+      case EFI_IFR_ONE_OF_OP:\r
+      case EFI_IFR_NUMERIC_OP:\r
         //\r
-        // Set default value base on the DefaultId list get from IFR data.\r
+        // Numeric and OneOf has the same opcode structure.\r
         //\r
-        for (LinkData = DefaultIdArray->Entry.ForwardLink; LinkData != &DefaultIdArray->Entry; LinkData = LinkData->ForwardLink) {\r
-          DefaultDataPtr = BASE_CR (LinkData, IFR_DEFAULT_DATA, Entry);\r
-          DefaultData.DefaultId   = DefaultDataPtr->DefaultId;\r
-          InsertDefaultValue (BlockData, &DefaultData);\r
+\r
+        //\r
+        // Numeric and OneOf question is not in IFR Form. This IFR form is not valid.\r
+        //\r
+        if (VarStoreId == 0) {\r
+          Status = EFI_INVALID_PARAMETER;\r
+          goto Done;\r
         }\r
-      }\r
-      break;\r
 \r
-    case EFI_IFR_ORDERED_LIST_OP:\r
-      //\r
-      // offset by question header\r
-      // width by EFI_IFR_ORDERED_LIST MaxContainers * OneofOption Type\r
-      //\r
+        //\r
+        // Check whether this question is for the requested varstore.\r
+        //\r
+        IfrOneOf = (EFI_IFR_ONE_OF *)IfrOpHdr;\r
+        if (IfrOneOf->Question.VarStoreId != VarStoreId) {\r
+          break;\r
+        }\r
 \r
-      FirstOrderedList = TRUE;\r
-      //\r
-      // OrderedList question is not in IFR Form. This IFR form is not valid.\r
-      //\r
-      if (VarStoreId == 0) {\r
-        Status = EFI_INVALID_PARAMETER;\r
-        goto Done;\r
-      }\r
-      //\r
-      // Check whether this question is for the requested varstore.\r
-      //\r
-      IfrOrderedList = (EFI_IFR_ORDERED_LIST *) IfrOpHdr;\r
-      if (IfrOrderedList->Question.VarStoreId != VarStoreId) {\r
-        BlockData = NULL;\r
-        break;\r
-      }\r
-      VarWidth  = IfrOrderedList->MaxContainers;\r
+        if (QuestionReferBitField) {\r
+          VarWidth = IfrOneOf->Flags & EDKII_IFR_NUMERIC_SIZE_BIT;\r
+        } else {\r
+          VarWidth = (UINT16)(1 << (IfrOneOf->Flags & EFI_IFR_NUMERIC_SIZE));\r
+        }\r
 \r
-      //\r
-      // The BlockData may allocate by other opcode,need to clean.\r
-      //\r
-      if (BlockData != NULL){\r
-        BlockData = NULL;\r
-      }\r
+        //\r
+        // The BlockData may allocate by other opcode,need to clean.\r
+        //\r
+        if (BlockData != NULL) {\r
+          BlockData = NULL;\r
+        }\r
 \r
-      Status = IsThisOpcodeRequired(RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, FALSE);\r
-      if (EFI_ERROR (Status)) {\r
-        if (Status == EFI_NOT_FOUND){\r
+        Status = IsThisOpcodeRequired (RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, QuestionReferBitField);\r
+        if (EFI_ERROR (Status)) {\r
+          if (Status == EFI_NOT_FOUND) {\r
+            //\r
+            // The opcode is not required,exit and parse other opcode.\r
+            //\r
+            break;\r
+          }\r
+\r
+          goto Done;\r
+        }\r
+\r
+        //\r
+        // when go to there,BlockData can't be NULLL.\r
+        //\r
+        ASSERT (BlockData != NULL);\r
+\r
+        if (IfrOpHdr->OpCode == EFI_IFR_ONE_OF_OP) {\r
+          //\r
+          // Set this flag to TRUE for the first oneof option.\r
+          //\r
+          FirstOneOfOption = TRUE;\r
+        } else if (IfrOpHdr->OpCode == EFI_IFR_NUMERIC_OP) {\r
           //\r
-          //The opcode is not required,exit and parse other opcode.\r
+          // Numeric minimum value will be used as default value when no default is specified.\r
           //\r
+          DefaultData.Type = DefaultValueFromDefault;\r
+          if (QuestionReferBitField) {\r
+            //\r
+            // Since default value in bit field was stored as UINT32 type.\r
+            //\r
+            CopyMem (&DefaultData.Value.u32, &IfrOneOf->data.u32.MinValue, sizeof (UINT32));\r
+          } else {\r
+            switch (IfrOneOf->Flags & EFI_IFR_NUMERIC_SIZE) {\r
+              case EFI_IFR_NUMERIC_SIZE_1:\r
+                DefaultData.Value.u8 = IfrOneOf->data.u8.MinValue;\r
+                break;\r
+\r
+              case EFI_IFR_NUMERIC_SIZE_2:\r
+                CopyMem (&DefaultData.Value.u16, &IfrOneOf->data.u16.MinValue, sizeof (UINT16));\r
+                break;\r
+\r
+              case EFI_IFR_NUMERIC_SIZE_4:\r
+                CopyMem (&DefaultData.Value.u32, &IfrOneOf->data.u32.MinValue, sizeof (UINT32));\r
+                break;\r
+\r
+              case EFI_IFR_NUMERIC_SIZE_8:\r
+                CopyMem (&DefaultData.Value.u64, &IfrOneOf->data.u64.MinValue, sizeof (UINT64));\r
+                break;\r
+\r
+              default:\r
+                Status = EFI_INVALID_PARAMETER;\r
+                goto Done;\r
+            }\r
+          }\r
+\r
+          //\r
+          // Set default value base on the DefaultId list get from IFR data.\r
+          //\r
+          NvDefaultStoreSize = PcdGetSize (PcdNvStoreDefaultValueBuffer);\r
+          for (LinkData = DefaultIdArray->Entry.ForwardLink; LinkData != &DefaultIdArray->Entry; LinkData = LinkData->ForwardLink) {\r
+            DefaultDataPtr        = BASE_CR (LinkData, IFR_DEFAULT_DATA, Entry);\r
+            DefaultData.DefaultId = DefaultDataPtr->DefaultId;\r
+            if (NvDefaultStoreSize > sizeof (PCD_NV_STORE_DEFAULT_BUFFER_HEADER)) {\r
+              FindQuestionDefaultSetting (DefaultData.DefaultId, IfrEfiVarStoreTmp, &(IfrOneOf->Question), &DefaultData.Value, VarWidth, QuestionReferBitField);\r
+            }\r
+\r
+            InsertDefaultValue (BlockData, &DefaultData);\r
+          }\r
+        }\r
+\r
+        break;\r
+\r
+      case EFI_IFR_ORDERED_LIST_OP:\r
+        //\r
+        // offset by question header\r
+        // width by EFI_IFR_ORDERED_LIST MaxContainers * OneofOption Type\r
+        //\r
+\r
+        FirstOrderedList = TRUE;\r
+        //\r
+        // OrderedList question is not in IFR Form. This IFR form is not valid.\r
+        //\r
+        if (VarStoreId == 0) {\r
+          Status = EFI_INVALID_PARAMETER;\r
+          goto Done;\r
+        }\r
+\r
+        //\r
+        // Check whether this question is for the requested varstore.\r
+        //\r
+        IfrOrderedList = (EFI_IFR_ORDERED_LIST *)IfrOpHdr;\r
+        if (IfrOrderedList->Question.VarStoreId != VarStoreId) {\r
+          BlockData = NULL;\r
           break;\r
         }\r
-        goto Done;\r
-      }\r
-      break;\r
 \r
-    case EFI_IFR_CHECKBOX_OP:\r
-      //\r
-      // EFI_IFR_DEFAULT_OP\r
-      // offset by question header\r
-      // width is 1 sizeof (BOOLEAN)\r
-      // default id by CheckBox Flags if CheckBox flags (Default or Mau) is set, the default value is 1 to be set.\r
-      // value by DefaultOption\r
-      // default id by DeaultOption DefaultId can override CheckBox Flags and Default value.\r
-      //\r
+        VarWidth = IfrOrderedList->MaxContainers;\r
+\r
+        //\r
+        // The BlockData may allocate by other opcode,need to clean.\r
+        //\r
+        if (BlockData != NULL) {\r
+          BlockData = NULL;\r
+        }\r
+\r
+        Status = IsThisOpcodeRequired (RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, FALSE);\r
+        if (EFI_ERROR (Status)) {\r
+          if (Status == EFI_NOT_FOUND) {\r
+            //\r
+            // The opcode is not required,exit and parse other opcode.\r
+            //\r
+            break;\r
+          }\r
+\r
+          goto Done;\r
+        }\r
 \r
-      //\r
-      // CheckBox question is not in IFR Form. This IFR form is not valid.\r
-      //\r
-      if (VarStoreId == 0) {\r
-        Status = EFI_INVALID_PARAMETER;\r
-        goto Done;\r
-      }\r
-      //\r
-      // Check whether this question is for the requested varstore.\r
-      //\r
-      IfrCheckBox = (EFI_IFR_CHECKBOX *) IfrOpHdr;\r
-      if (IfrCheckBox->Question.VarStoreId != VarStoreId) {\r
         break;\r
-      }\r
-      VarWidth  = (UINT16) sizeof (BOOLEAN);\r
 \r
-      //\r
-      // The BlockData may allocate by other opcode,need to clean.\r
-      //\r
-      if (BlockData != NULL){\r
-        BlockData = NULL;\r
-      }\r
+      case EFI_IFR_CHECKBOX_OP:\r
+        //\r
+        // EFI_IFR_DEFAULT_OP\r
+        // offset by question header\r
+        // width is 1 sizeof (BOOLEAN)\r
+        // default id by CheckBox Flags if CheckBox flags (Default or Mau) is set, the default value is 1 to be set.\r
+        // value by DefaultOption\r
+        // default id by DeaultOption DefaultId can override CheckBox Flags and Default value.\r
+        //\r
 \r
-      if (QuestionReferBitField) {\r
-        VarWidth = 1;\r
-      }\r
-      Status = IsThisOpcodeRequired(RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, QuestionReferBitField);\r
-      if (EFI_ERROR (Status)) {\r
-        if (Status == EFI_NOT_FOUND){\r
-          //\r
-          //The opcode is not required,exit and parse other opcode.\r
-          //\r
-          break;\r
+        //\r
+        // CheckBox question is not in IFR Form. This IFR form is not valid.\r
+        //\r
+        if (VarStoreId == 0) {\r
+          Status = EFI_INVALID_PARAMETER;\r
+          goto Done;\r
         }\r
-        goto Done;\r
-      }\r
 \r
-      //\r
-      //when go to there,BlockData can't be NULLL.\r
-      //\r
-      ASSERT (BlockData != NULL);\r
+        //\r
+        // Check whether this question is for the requested varstore.\r
+        //\r
+        IfrCheckBox = (EFI_IFR_CHECKBOX *)IfrOpHdr;\r
+        if (IfrCheckBox->Question.VarStoreId != VarStoreId) {\r
+          break;\r
+        }\r
 \r
-      SmallestIdFromFlag = FALSE;\r
+        VarWidth = (UINT16)sizeof (BOOLEAN);\r
 \r
-      //\r
-      // Add default value for standard ID by CheckBox Flag\r
-      //\r
-      VarDefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;\r
-      //\r
-      // Prepare new DefaultValue\r
-      //\r
-      DefaultData.DefaultId   = VarDefaultId;\r
-      if ((IfrCheckBox->Flags & EFI_IFR_CHECKBOX_DEFAULT) == EFI_IFR_CHECKBOX_DEFAULT) {\r
         //\r
-        // When flag is set, default value is TRUE.\r
+        // The BlockData may allocate by other opcode,need to clean.\r
         //\r
-        DefaultData.Type    = DefaultValueFromFlag;\r
+        if (BlockData != NULL) {\r
+          BlockData = NULL;\r
+        }\r
+\r
         if (QuestionReferBitField) {\r
-          DefaultData.Value.u32 = TRUE;\r
-        } else {\r
-          DefaultData.Value.b = TRUE;\r
+          VarWidth = 1;\r
         }\r
-        InsertDefaultValue (BlockData, &DefaultData);\r
 \r
-        if (SmallestDefaultId > EFI_HII_DEFAULT_CLASS_STANDARD) {\r
+        Status = IsThisOpcodeRequired (RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, QuestionReferBitField);\r
+        if (EFI_ERROR (Status)) {\r
+          if (Status == EFI_NOT_FOUND) {\r
+            //\r
+            // The opcode is not required,exit and parse other opcode.\r
+            //\r
+            break;\r
+          }\r
+\r
+          goto Done;\r
+        }\r
+\r
+        //\r
+        // when go to there,BlockData can't be NULLL.\r
+        //\r
+        ASSERT (BlockData != NULL);\r
+\r
+        SmallestIdFromFlag = FALSE;\r
+\r
+        //\r
+        // Add default value for standard ID by CheckBox Flag\r
+        //\r
+        VarDefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;\r
+        //\r
+        // Prepare new DefaultValue\r
+        //\r
+        DefaultData.DefaultId = VarDefaultId;\r
+        if ((IfrCheckBox->Flags & EFI_IFR_CHECKBOX_DEFAULT) == EFI_IFR_CHECKBOX_DEFAULT) {\r
           //\r
-          // Record the SmallestDefaultId and update the SmallestIdFromFlag.\r
+          // When flag is set, default value is TRUE.\r
           //\r
-          SmallestDefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;\r
-          SmallestIdFromFlag = TRUE;\r
+          DefaultData.Type = DefaultValueFromFlag;\r
+          if (QuestionReferBitField) {\r
+            DefaultData.Value.u32 = TRUE;\r
+          } else {\r
+            DefaultData.Value.b = TRUE;\r
+          }\r
+\r
+          InsertDefaultValue (BlockData, &DefaultData);\r
+\r
+          if (SmallestDefaultId > EFI_HII_DEFAULT_CLASS_STANDARD) {\r
+            //\r
+            // Record the SmallestDefaultId and update the SmallestIdFromFlag.\r
+            //\r
+            SmallestDefaultId  = EFI_HII_DEFAULT_CLASS_STANDARD;\r
+            SmallestIdFromFlag = TRUE;\r
+          }\r
         }\r
-      }\r
 \r
-      //\r
-      // Add default value for Manufacture ID by CheckBox Flag\r
-      //\r
-      VarDefaultId = EFI_HII_DEFAULT_CLASS_MANUFACTURING;\r
-      //\r
-      // Prepare new DefaultValue\r
-      //\r
-      DefaultData.DefaultId   = VarDefaultId;\r
-      if ((IfrCheckBox->Flags & EFI_IFR_CHECKBOX_DEFAULT_MFG) == EFI_IFR_CHECKBOX_DEFAULT_MFG) {\r
         //\r
-        // When flag is set, default value is TRUE.\r
+        // Add default value for Manufacture ID by CheckBox Flag\r
         //\r
-        DefaultData.Type    = DefaultValueFromFlag;\r
-        if (QuestionReferBitField) {\r
-          DefaultData.Value.u32 = TRUE;\r
-        } else {\r
-          DefaultData.Value.b = TRUE;\r
+        VarDefaultId = EFI_HII_DEFAULT_CLASS_MANUFACTURING;\r
+        //\r
+        // Prepare new DefaultValue\r
+        //\r
+        DefaultData.DefaultId = VarDefaultId;\r
+        if ((IfrCheckBox->Flags & EFI_IFR_CHECKBOX_DEFAULT_MFG) == EFI_IFR_CHECKBOX_DEFAULT_MFG) {\r
+          //\r
+          // When flag is set, default value is TRUE.\r
+          //\r
+          DefaultData.Type = DefaultValueFromFlag;\r
+          if (QuestionReferBitField) {\r
+            DefaultData.Value.u32 = TRUE;\r
+          } else {\r
+            DefaultData.Value.b = TRUE;\r
+          }\r
+\r
+          InsertDefaultValue (BlockData, &DefaultData);\r
+\r
+          if (SmallestDefaultId > EFI_HII_DEFAULT_CLASS_MANUFACTURING) {\r
+            //\r
+            // Record the SmallestDefaultId and update the SmallestIdFromFlag.\r
+            //\r
+            SmallestDefaultId  = EFI_HII_DEFAULT_CLASS_MANUFACTURING;\r
+            SmallestIdFromFlag = TRUE;\r
+          }\r
         }\r
-        InsertDefaultValue (BlockData, &DefaultData);\r
 \r
-        if (SmallestDefaultId > EFI_HII_DEFAULT_CLASS_MANUFACTURING) {\r
+        if (SmallestIdFromFlag) {\r
+          //\r
+          // When smallest default Id is given by the  flag of CheckBox, set default value with TRUE for other default Id in the DefaultId list.\r
+          //\r
+          DefaultData.Type = DefaultValueFromOtherDefault;\r
+          if (QuestionReferBitField) {\r
+            DefaultData.Value.u32 = TRUE;\r
+          } else {\r
+            DefaultData.Value.b = TRUE;\r
+          }\r
+\r
+          //\r
+          // Set default value for all the default id in the DefaultId list.\r
+          //\r
+          for (LinkData = DefaultIdArray->Entry.ForwardLink; LinkData != &DefaultIdArray->Entry; LinkData = LinkData->ForwardLink) {\r
+            DefaultDataPtr        = BASE_CR (LinkData, IFR_DEFAULT_DATA, Entry);\r
+            DefaultData.DefaultId = DefaultDataPtr->DefaultId;\r
+            InsertDefaultValue (BlockData, &DefaultData);\r
+          }\r
+        } else {\r
+          //\r
+          // When flag is not set, default value is FASLE.\r
+          //\r
+          DefaultData.Type = DefaultValueFromDefault;\r
+          if (QuestionReferBitField) {\r
+            DefaultData.Value.u32 = FALSE;\r
+          } else {\r
+            DefaultData.Value.b = FALSE;\r
+          }\r
+\r
           //\r
-          // Record the SmallestDefaultId and update the SmallestIdFromFlag.\r
+          // Set default value for all the default id in the DefaultId list.\r
           //\r
-          SmallestDefaultId = EFI_HII_DEFAULT_CLASS_MANUFACTURING;\r
-          SmallestIdFromFlag = TRUE;\r
+          for (LinkData = DefaultIdArray->Entry.ForwardLink; LinkData != &DefaultIdArray->Entry; LinkData = LinkData->ForwardLink) {\r
+            DefaultDataPtr        = BASE_CR (LinkData, IFR_DEFAULT_DATA, Entry);\r
+            DefaultData.DefaultId = DefaultDataPtr->DefaultId;\r
+            InsertDefaultValue (BlockData, &DefaultData);\r
+          }\r
         }\r
-      }\r
-      if (SmallestIdFromFlag) {\r
+\r
+        break;\r
+\r
+      case EFI_IFR_DATE_OP:\r
         //\r
-        // When smallest default Id is given by the  flag of CheckBox, set default value with TRUE for other default Id in the DefaultId list.\r
+        // offset by question header\r
+        // width MaxSize * sizeof (CHAR16)\r
+        // no default value, only block array\r
         //\r
-        DefaultData.Type    = DefaultValueFromOtherDefault;\r
-        if (QuestionReferBitField) {\r
-          DefaultData.Value.u32 = TRUE;\r
-        } else {\r
-          DefaultData.Value.b = TRUE;\r
-        }\r
+\r
         //\r
-        // Set default value for all the default id in the DefaultId list.\r
+        // Date question is not in IFR Form. This IFR form is not valid.\r
         //\r
-        for (LinkData = DefaultIdArray->Entry.ForwardLink; LinkData != &DefaultIdArray->Entry; LinkData = LinkData->ForwardLink) {\r
-          DefaultDataPtr = BASE_CR (LinkData, IFR_DEFAULT_DATA, Entry);\r
-          DefaultData.DefaultId   = DefaultDataPtr->DefaultId;\r
-          InsertDefaultValue (BlockData, &DefaultData);\r
+        if (VarStoreId == 0) {\r
+          Status = EFI_INVALID_PARAMETER;\r
+          goto Done;\r
         }\r
-      } else {\r
+\r
         //\r
-        // When flag is not set, default value is FASLE.\r
+        // Check whether this question is for the requested varstore.\r
         //\r
-        DefaultData.Type    = DefaultValueFromDefault;\r
-        if (QuestionReferBitField) {\r
-          DefaultData.Value.u32 = FALSE;\r
-        } else {\r
-          DefaultData.Value.b = FALSE;\r
+        IfrDate = (EFI_IFR_DATE *)IfrOpHdr;\r
+        if (IfrDate->Question.VarStoreId != VarStoreId) {\r
+          break;\r
         }\r
+\r
         //\r
-        // Set default value for all the default id in the DefaultId list.\r
+        // The BlockData may allocate by other opcode,need to clean.\r
         //\r
-        for (LinkData = DefaultIdArray->Entry.ForwardLink; LinkData != &DefaultIdArray->Entry; LinkData = LinkData->ForwardLink) {\r
-          DefaultDataPtr = BASE_CR (LinkData, IFR_DEFAULT_DATA, Entry);\r
-          DefaultData.DefaultId   = DefaultDataPtr->DefaultId;\r
-          InsertDefaultValue (BlockData, &DefaultData);\r
+        if (BlockData != NULL) {\r
+          BlockData = NULL;\r
         }\r
-      }\r
-      break;\r
 \r
-    case EFI_IFR_DATE_OP:\r
-      //\r
-      // offset by question header\r
-      // width MaxSize * sizeof (CHAR16)\r
-      // no default value, only block array\r
-      //\r
+        VarWidth = (UINT16)sizeof (EFI_HII_DATE);\r
+        Status   = IsThisOpcodeRequired (RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, FALSE);\r
+        if (EFI_ERROR (Status)) {\r
+          if (Status == EFI_NOT_FOUND) {\r
+            //\r
+            // The opcode is not required,exit and parse other opcode.\r
+            //\r
+            break;\r
+          }\r
+\r
+          goto Done;\r
+        }\r
 \r
-      //\r
-      // Date question is not in IFR Form. This IFR form is not valid.\r
-      //\r
-      if (VarStoreId == 0) {\r
-        Status = EFI_INVALID_PARAMETER;\r
-        goto Done;\r
-      }\r
-      //\r
-      // Check whether this question is for the requested varstore.\r
-      //\r
-      IfrDate = (EFI_IFR_DATE *) IfrOpHdr;\r
-      if (IfrDate->Question.VarStoreId != VarStoreId) {\r
         break;\r
-      }\r
 \r
-      //\r
-      // The BlockData may allocate by other opcode,need to clean.\r
-      //\r
-      if (BlockData != NULL){\r
-        BlockData = NULL;\r
-      }\r
+      case EFI_IFR_TIME_OP:\r
+        //\r
+        // offset by question header\r
+        // width MaxSize * sizeof (CHAR16)\r
+        // no default value, only block array\r
+        //\r
 \r
-      VarWidth  = (UINT16) sizeof (EFI_HII_DATE);\r
-      Status = IsThisOpcodeRequired(RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, FALSE);\r
-      if (EFI_ERROR (Status)) {\r
-        if (Status == EFI_NOT_FOUND){\r
-          //\r
-          //The opcode is not required,exit and parse other opcode.\r
-          //\r
-          break;\r
+        //\r
+        // Time question is not in IFR Form. This IFR form is not valid.\r
+        //\r
+        if (VarStoreId == 0) {\r
+          Status = EFI_INVALID_PARAMETER;\r
+          goto Done;\r
         }\r
-        goto Done;\r
-      }\r
-      break;\r
 \r
-    case EFI_IFR_TIME_OP:\r
-      //\r
-      // offset by question header\r
-      // width MaxSize * sizeof (CHAR16)\r
-      // no default value, only block array\r
-      //\r
+        //\r
+        // Check whether this question is for the requested varstore.\r
+        //\r
+        IfrTime = (EFI_IFR_TIME *)IfrOpHdr;\r
+        if (IfrTime->Question.VarStoreId != VarStoreId) {\r
+          break;\r
+        }\r
 \r
-      //\r
-      // Time question is not in IFR Form. This IFR form is not valid.\r
-      //\r
-      if (VarStoreId == 0) {\r
-        Status = EFI_INVALID_PARAMETER;\r
-        goto Done;\r
-      }\r
-      //\r
-      // Check whether this question is for the requested varstore.\r
-      //\r
-      IfrTime = (EFI_IFR_TIME *) IfrOpHdr;\r
-      if (IfrTime->Question.VarStoreId != VarStoreId) {\r
-        break;\r
-      }\r
+        //\r
+        // The BlockData may allocate by other opcode,need to clean.\r
+        //\r
+        if (BlockData != NULL) {\r
+          BlockData = NULL;\r
+        }\r
 \r
-      //\r
-      // The BlockData may allocate by other opcode,need to clean.\r
-      //\r
-      if (BlockData != NULL){\r
-        BlockData = NULL;\r
-      }\r
+        VarWidth = (UINT16)sizeof (EFI_HII_TIME);\r
+        Status   = IsThisOpcodeRequired (RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, FALSE);\r
+        if (EFI_ERROR (Status)) {\r
+          if (Status == EFI_NOT_FOUND) {\r
+            //\r
+            // The opcode is not required,exit and parse other opcode.\r
+            //\r
+            break;\r
+          }\r
 \r
-      VarWidth  = (UINT16) sizeof (EFI_HII_TIME);\r
-      Status = IsThisOpcodeRequired(RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, FALSE);\r
-      if (EFI_ERROR (Status)) {\r
-        if (Status == EFI_NOT_FOUND){\r
-          //\r
-          //The opcode is not required,exit and parse other opcode.\r
-          //\r
-          break;\r
+          goto Done;\r
         }\r
-        goto Done;\r
-      }\r
-      break;\r
-\r
-    case EFI_IFR_STRING_OP:\r
-      //\r
-      // offset by question header\r
-      // width MaxSize * sizeof (CHAR16)\r
-      // no default value, only block array\r
-      //\r
 \r
-      //\r
-      // String question is not in IFR Form. This IFR form is not valid.\r
-      //\r
-      if (VarStoreId == 0) {\r
-        Status = EFI_INVALID_PARAMETER;\r
-        goto Done;\r
-      }\r
-      //\r
-      // Check whether this question is for the requested varstore.\r
-      //\r
-      IfrString = (EFI_IFR_STRING *) IfrOpHdr;\r
-      if (IfrString->Question.VarStoreId != VarStoreId) {\r
         break;\r
-      }\r
 \r
-      //\r
-      // The BlockData may allocate by other opcode,need to clean.\r
-      //\r
-      if (BlockData != NULL){\r
-        BlockData = NULL;\r
-      }\r
+      case EFI_IFR_STRING_OP:\r
+        //\r
+        // offset by question header\r
+        // width MaxSize * sizeof (CHAR16)\r
+        // no default value, only block array\r
+        //\r
 \r
-      VarWidth  = (UINT16) (IfrString->MaxSize * sizeof (UINT16));\r
-      Status = IsThisOpcodeRequired(RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, FALSE);\r
-      if (EFI_ERROR (Status)) {\r
-        if (Status == EFI_NOT_FOUND){\r
-          //\r
-          //The opcode is not required,exit and parse other opcode.\r
-          //\r
-          break;\r
+        //\r
+        // String question is not in IFR Form. This IFR form is not valid.\r
+        //\r
+        if (VarStoreId == 0) {\r
+          Status = EFI_INVALID_PARAMETER;\r
+          goto Done;\r
         }\r
-        goto Done;\r
-      }\r
-      break;\r
 \r
-    case EFI_IFR_PASSWORD_OP:\r
-      //\r
-      // offset by question header\r
-      // width MaxSize * sizeof (CHAR16)\r
-      // no default value, only block array\r
-      //\r
+        //\r
+        // Check whether this question is for the requested varstore.\r
+        //\r
+        IfrString = (EFI_IFR_STRING *)IfrOpHdr;\r
+        if (IfrString->Question.VarStoreId != VarStoreId) {\r
+          break;\r
+        }\r
 \r
-      //\r
-      // Password question is not in IFR Form. This IFR form is not valid.\r
-      //\r
-      if (VarStoreId == 0) {\r
-        Status = EFI_INVALID_PARAMETER;\r
-        goto Done;\r
-      }\r
-      //\r
-      // Check whether this question is for the requested varstore.\r
-      //\r
-      IfrPassword = (EFI_IFR_PASSWORD *) IfrOpHdr;\r
-      if (IfrPassword->Question.VarStoreId != VarStoreId) {\r
-        break;\r
-      }\r
+        //\r
+        // The BlockData may allocate by other opcode,need to clean.\r
+        //\r
+        if (BlockData != NULL) {\r
+          BlockData = NULL;\r
+        }\r
 \r
-      //\r
-      // The BlockData may allocate by other opcode,need to clean.\r
-      //\r
-      if (BlockData != NULL){\r
-        BlockData = NULL;\r
-      }\r
+        VarWidth = (UINT16)(IfrString->MaxSize * sizeof (UINT16));\r
+        Status   = IsThisOpcodeRequired (RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, FALSE);\r
+        if (EFI_ERROR (Status)) {\r
+          if (Status == EFI_NOT_FOUND) {\r
+            //\r
+            // The opcode is not required,exit and parse other opcode.\r
+            //\r
+            break;\r
+          }\r
 \r
-      VarWidth  = (UINT16) (IfrPassword->MaxSize * sizeof (UINT16));\r
-      Status = IsThisOpcodeRequired(RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, FALSE);\r
-      if (EFI_ERROR (Status)) {\r
-        if (Status == EFI_NOT_FOUND){\r
-          //\r
-          //The opcode is not required,exit and parse other opcode.\r
-          //\r
-          break;\r
+          goto Done;\r
         }\r
-        goto Done;\r
-      }\r
-\r
-      //\r
-      // No default value for string.\r
-      //\r
-      BlockData = NULL;\r
-      break;\r
 \r
-    case EFI_IFR_ONE_OF_OPTION_OP:\r
-      //\r
-      // No matched block data is ignored.\r
-      //\r
-      if (BlockData == NULL || BlockData->Scope == 0) {\r
         break;\r
-      }\r
 \r
-      IfrOneOfOption = (EFI_IFR_ONE_OF_OPTION *) IfrOpHdr;\r
-      if (BlockData->OpCode == EFI_IFR_ORDERED_LIST_OP) {\r
+      case EFI_IFR_PASSWORD_OP:\r
+        //\r
+        // offset by question header\r
+        // width MaxSize * sizeof (CHAR16)\r
+        // no default value, only block array\r
+        //\r
 \r
-        if (!FirstOrderedList){\r
-          break;\r
-        }\r
         //\r
-        // Get ordered list option data type.\r
+        // Password question is not in IFR Form. This IFR form is not valid.\r
         //\r
-        if (IfrOneOfOption->Type == EFI_IFR_TYPE_NUM_SIZE_8 || IfrOneOfOption->Type == EFI_IFR_TYPE_BOOLEAN) {\r
-          VarWidth = 1;\r
-        } else if (IfrOneOfOption->Type == EFI_IFR_TYPE_NUM_SIZE_16) {\r
-          VarWidth = 2;\r
-        } else if (IfrOneOfOption->Type == EFI_IFR_TYPE_NUM_SIZE_32) {\r
-          VarWidth = 4;\r
-        } else if (IfrOneOfOption->Type == EFI_IFR_TYPE_NUM_SIZE_64) {\r
-          VarWidth = 8;\r
-        } else {\r
-          //\r
-          // Invalid ordered list option data type.\r
-          //\r
+        if (VarStoreId == 0) {\r
           Status = EFI_INVALID_PARAMETER;\r
-          if (BlockData->Name != NULL) {\r
-            FreePool (BlockData->Name);\r
-          }\r
-          FreePool (BlockData);\r
           goto Done;\r
         }\r
 \r
         //\r
-        // Calculate Ordered list QuestionId width.\r
-        //\r
-        BlockData->Width = (UINT16) (BlockData->Width * VarWidth);\r
-        //\r
-        // Check whether this question is in requested block array.\r
+        // Check whether this question is for the requested varstore.\r
         //\r
-        if (!BlockArrayCheck (RequestBlockArray, BlockData->Offset, BlockData->Width, (BOOLEAN)(BlockData->Name != NULL), HiiHandle)) {\r
-          //\r
-          // This question is not in the requested string. Skip it.\r
-          //\r
-          if (BlockData->Name != NULL) {\r
-            FreePool (BlockData->Name);\r
-          }\r
-          FreePool (BlockData);\r
-          BlockData = NULL;\r
+        IfrPassword = (EFI_IFR_PASSWORD *)IfrOpHdr;\r
+        if (IfrPassword->Question.VarStoreId != VarStoreId) {\r
           break;\r
         }\r
+\r
         //\r
-        // Check this var question is in the var storage\r
+        // The BlockData may allocate by other opcode,need to clean.\r
         //\r
-        if ((BlockData->Name == NULL) && ((BlockData->Offset + BlockData->Width) > VarStorageData->Size)) {\r
-          Status = EFI_INVALID_PARAMETER;\r
-          FreePool (BlockData);\r
+        if (BlockData != NULL) {\r
+          BlockData = NULL;\r
+        }\r
+\r
+        VarWidth = (UINT16)(IfrPassword->MaxSize * sizeof (UINT16));\r
+        Status   = IsThisOpcodeRequired (RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, FALSE);\r
+        if (EFI_ERROR (Status)) {\r
+          if (Status == EFI_NOT_FOUND) {\r
+            //\r
+            // The opcode is not required,exit and parse other opcode.\r
+            //\r
+            break;\r
+          }\r
+\r
           goto Done;\r
         }\r
+\r
         //\r
-        // Add Block Data into VarStorageData BlockEntry\r
+        // No default value for string.\r
         //\r
-        InsertBlockData (&VarStorageData->BlockEntry, &BlockData);\r
-\r
-        FirstOrderedList = FALSE;\r
-\r
+        BlockData = NULL;\r
         break;\r
-      }\r
 \r
-      //\r
-      // 1. Set default value for OneOf option when flag field has default attribute.\r
-      //    And set the default value with the smallest default id for other default id in the DefaultId list.\r
-      //\r
-      if (((IfrOneOfOption->Flags & EFI_IFR_OPTION_DEFAULT) == EFI_IFR_OPTION_DEFAULT) ||\r
-          ((IfrOneOfOption->Flags & EFI_IFR_OPTION_DEFAULT_MFG) == EFI_IFR_OPTION_DEFAULT_MFG)) {\r
+      case EFI_IFR_ONE_OF_OPTION_OP:\r
         //\r
-        // This flag is used to specify whether this option is the first. Set it to FALSE for the following options.\r
-        // The first oneof option value will be used as default value when no default value is specified.\r
+        // No matched block data is ignored.\r
         //\r
-        FirstOneOfOption = FALSE;\r
+        if ((BlockData == NULL) || (BlockData->Scope == 0)) {\r
+          break;\r
+        }\r
 \r
-        SmallestIdFromFlag = FALSE;\r
+        IfrOneOfOption = (EFI_IFR_ONE_OF_OPTION *)IfrOpHdr;\r
+        if (BlockData->OpCode == EFI_IFR_ORDERED_LIST_OP) {\r
+          if (!FirstOrderedList) {\r
+            break;\r
+          }\r
 \r
-        // Prepare new DefaultValue\r
-        //\r
-        DefaultData.Type     = DefaultValueFromFlag;\r
-        CopyMem (&DefaultData.Value, &IfrOneOfOption->Value, IfrOneOfOption->Header.Length - OFFSET_OF (EFI_IFR_ONE_OF_OPTION, Value));\r
-        if ((IfrOneOfOption->Flags & EFI_IFR_OPTION_DEFAULT) == EFI_IFR_OPTION_DEFAULT) {\r
-          DefaultData.DefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;\r
-          InsertDefaultValue (BlockData, &DefaultData);\r
-          if (SmallestDefaultId > EFI_HII_DEFAULT_CLASS_STANDARD) {\r
+          //\r
+          // Get ordered list option data type.\r
+          //\r
+          if ((IfrOneOfOption->Type == EFI_IFR_TYPE_NUM_SIZE_8) || (IfrOneOfOption->Type == EFI_IFR_TYPE_BOOLEAN)) {\r
+            VarWidth = 1;\r
+          } else if (IfrOneOfOption->Type == EFI_IFR_TYPE_NUM_SIZE_16) {\r
+            VarWidth = 2;\r
+          } else if (IfrOneOfOption->Type == EFI_IFR_TYPE_NUM_SIZE_32) {\r
+            VarWidth = 4;\r
+          } else if (IfrOneOfOption->Type == EFI_IFR_TYPE_NUM_SIZE_64) {\r
+            VarWidth = 8;\r
+          } else {\r
             //\r
-            // Record the SmallestDefaultId and update the SmallestIdFromFlag.\r
+            // Invalid ordered list option data type.\r
             //\r
-            SmallestDefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;\r
-            SmallestIdFromFlag = TRUE;\r
+            Status = EFI_INVALID_PARAMETER;\r
+            if (BlockData->Name != NULL) {\r
+              FreePool (BlockData->Name);\r
+            }\r
+\r
+            FreePool (BlockData);\r
+            goto Done;\r
           }\r
-        }\r
-        if ((IfrOneOfOption->Flags & EFI_IFR_OPTION_DEFAULT_MFG) == EFI_IFR_OPTION_DEFAULT_MFG) {\r
-          DefaultData.DefaultId = EFI_HII_DEFAULT_CLASS_MANUFACTURING;\r
-          InsertDefaultValue (BlockData, &DefaultData);\r
-          if (SmallestDefaultId > EFI_HII_DEFAULT_CLASS_MANUFACTURING) {\r
+\r
+          //\r
+          // Calculate Ordered list QuestionId width.\r
+          //\r
+          BlockData->Width = (UINT16)(BlockData->Width * VarWidth);\r
+          //\r
+          // Check whether this question is in requested block array.\r
+          //\r
+          if (!BlockArrayCheck (RequestBlockArray, BlockData->Offset, BlockData->Width, (BOOLEAN)(BlockData->Name != NULL), HiiHandle)) {\r
             //\r
-            // Record the SmallestDefaultId and update the SmallestIdFromFlag.\r
+            // This question is not in the requested string. Skip it.\r
             //\r
-            SmallestDefaultId = EFI_HII_DEFAULT_CLASS_MANUFACTURING;\r
-            SmallestIdFromFlag = TRUE;\r
+            if (BlockData->Name != NULL) {\r
+              FreePool (BlockData->Name);\r
+            }\r
+\r
+            FreePool (BlockData);\r
+            BlockData = NULL;\r
+            break;\r
+          }\r
+\r
+          //\r
+          // Check this var question is in the var storage\r
+          //\r
+          if ((BlockData->Name == NULL) && ((BlockData->Offset + BlockData->Width) > VarStorageData->Size)) {\r
+            Status = EFI_INVALID_PARAMETER;\r
+            FreePool (BlockData);\r
+            goto Done;\r
           }\r
+\r
+          //\r
+          // Add Block Data into VarStorageData BlockEntry\r
+          //\r
+          InsertBlockData (&VarStorageData->BlockEntry, &BlockData);\r
+\r
+          FirstOrderedList = FALSE;\r
+\r
+          break;\r
         }\r
 \r
-        if (SmallestIdFromFlag) {\r
+        //\r
+        // 1. Set default value for OneOf option when flag field has default attribute.\r
+        //    And set the default value with the smallest default id for other default id in the DefaultId list.\r
+        //\r
+        if (((IfrOneOfOption->Flags & EFI_IFR_OPTION_DEFAULT) == EFI_IFR_OPTION_DEFAULT) ||\r
+            ((IfrOneOfOption->Flags & EFI_IFR_OPTION_DEFAULT_MFG) == EFI_IFR_OPTION_DEFAULT_MFG))\r
+        {\r
           //\r
-          // When smallest default Id is given by the flag of oneofOption, set this option value for other default Id in the DefaultId list.\r
+          // This flag is used to specify whether this option is the first. Set it to FALSE for the following options.\r
+          // The first oneof option value will be used as default value when no default value is specified.\r
           //\r
-          DefaultData.Type = DefaultValueFromOtherDefault;\r
+          FirstOneOfOption = FALSE;\r
+\r
+          SmallestIdFromFlag = FALSE;\r
+\r
+          // Prepare new DefaultValue\r
+          //\r
+          DefaultData.Type = DefaultValueFromFlag;\r
+          CopyMem (&DefaultData.Value, &IfrOneOfOption->Value, IfrOneOfOption->Header.Length - OFFSET_OF (EFI_IFR_ONE_OF_OPTION, Value));\r
+          if ((IfrOneOfOption->Flags & EFI_IFR_OPTION_DEFAULT) == EFI_IFR_OPTION_DEFAULT) {\r
+            DefaultData.DefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;\r
+            InsertDefaultValue (BlockData, &DefaultData);\r
+            if (SmallestDefaultId > EFI_HII_DEFAULT_CLASS_STANDARD) {\r
+              //\r
+              // Record the SmallestDefaultId and update the SmallestIdFromFlag.\r
+              //\r
+              SmallestDefaultId  = EFI_HII_DEFAULT_CLASS_STANDARD;\r
+              SmallestIdFromFlag = TRUE;\r
+            }\r
+          }\r
+\r
+          if ((IfrOneOfOption->Flags & EFI_IFR_OPTION_DEFAULT_MFG) == EFI_IFR_OPTION_DEFAULT_MFG) {\r
+            DefaultData.DefaultId = EFI_HII_DEFAULT_CLASS_MANUFACTURING;\r
+            InsertDefaultValue (BlockData, &DefaultData);\r
+            if (SmallestDefaultId > EFI_HII_DEFAULT_CLASS_MANUFACTURING) {\r
+              //\r
+              // Record the SmallestDefaultId and update the SmallestIdFromFlag.\r
+              //\r
+              SmallestDefaultId  = EFI_HII_DEFAULT_CLASS_MANUFACTURING;\r
+              SmallestIdFromFlag = TRUE;\r
+            }\r
+          }\r
+\r
+          if (SmallestIdFromFlag) {\r
+            //\r
+            // When smallest default Id is given by the flag of oneofOption, set this option value for other default Id in the DefaultId list.\r
+            //\r
+            DefaultData.Type = DefaultValueFromOtherDefault;\r
+            //\r
+            // Set default value for other default id in the DefaultId list.\r
+            //\r
+            for (LinkData = DefaultIdArray->Entry.ForwardLink; LinkData != &DefaultIdArray->Entry; LinkData = LinkData->ForwardLink) {\r
+              DefaultDataPtr        = BASE_CR (LinkData, IFR_DEFAULT_DATA, Entry);\r
+              DefaultData.DefaultId = DefaultDataPtr->DefaultId;\r
+              InsertDefaultValue (BlockData, &DefaultData);\r
+            }\r
+          }\r
+        }\r
+\r
+        //\r
+        // 2. Set as the default value when this is the first option.\r
+        // The first oneof option value will be used as default value when no default value is specified.\r
+        //\r
+        if (FirstOneOfOption) {\r
+          // This flag is used to specify whether this option is the first. Set it to FALSE for the following options.\r
+          FirstOneOfOption = FALSE;\r
+\r
           //\r
-          // Set default value for other default id in the DefaultId list.\r
+          // Prepare new DefaultValue\r
           //\r
+          DefaultData.Type = DefaultValueFromDefault;\r
+          CopyMem (&DefaultData.Value, &IfrOneOfOption->Value, IfrOneOfOption->Header.Length - OFFSET_OF (EFI_IFR_ONE_OF_OPTION, Value));\r
           for (LinkData = DefaultIdArray->Entry.ForwardLink; LinkData != &DefaultIdArray->Entry; LinkData = LinkData->ForwardLink) {\r
-            DefaultDataPtr = BASE_CR (LinkData, IFR_DEFAULT_DATA, Entry);\r
-            DefaultData.DefaultId   = DefaultDataPtr->DefaultId;\r
+            DefaultDataPtr        = BASE_CR (LinkData, IFR_DEFAULT_DATA, Entry);\r
+            DefaultData.DefaultId = DefaultDataPtr->DefaultId;\r
             InsertDefaultValue (BlockData, &DefaultData);\r
           }\r
         }\r
-      }\r
 \r
-      //\r
-      // 2. Set as the default value when this is the first option.\r
-      // The first oneof option value will be used as default value when no default value is specified.\r
-      //\r
-      if (FirstOneOfOption) {\r
-        // This flag is used to specify whether this option is the first. Set it to FALSE for the following options.\r
-        FirstOneOfOption = FALSE;\r
+        break;\r
 \r
+      case EFI_IFR_DEFAULT_OP:\r
         //\r
-        // Prepare new DefaultValue\r
+        // Update Current BlockData to the default value.\r
         //\r
-        DefaultData.Type     = DefaultValueFromDefault;\r
-        CopyMem (&DefaultData.Value, &IfrOneOfOption->Value, IfrOneOfOption->Header.Length - OFFSET_OF (EFI_IFR_ONE_OF_OPTION, Value));\r
-        for (LinkData = DefaultIdArray->Entry.ForwardLink; LinkData != &DefaultIdArray->Entry; LinkData = LinkData->ForwardLink) {\r
-          DefaultDataPtr = BASE_CR (LinkData, IFR_DEFAULT_DATA, Entry);\r
-          DefaultData.DefaultId   = DefaultDataPtr->DefaultId;\r
-          InsertDefaultValue (BlockData, &DefaultData);\r
+        if ((BlockData == NULL) || (BlockData->Scope == 0)) {\r
+          //\r
+          // No matched block data is ignored.\r
+          //\r
+          break;\r
         }\r
-      }\r
-      break;\r
 \r
-    case EFI_IFR_DEFAULT_OP:\r
-      //\r
-      // Update Current BlockData to the default value.\r
-      //\r
-      if (BlockData == NULL || BlockData->Scope == 0) {\r
         //\r
-        // No matched block data is ignored.\r
+        // Get the DefaultId\r
         //\r
-        break;\r
-      }\r
+        IfrDefault   = (EFI_IFR_DEFAULT *)IfrOpHdr;\r
+        VarDefaultId = IfrDefault->DefaultId;\r
+        //\r
+        // Prepare new DefaultValue\r
+        //\r
+        DefaultData.Type      = DefaultValueFromOpcode;\r
+        DefaultData.DefaultId = VarDefaultId;\r
+        if (QuestionReferBitField) {\r
+          CopyMem (&DefaultData.Value.u32, &IfrDefault->Value.u32, sizeof (UINT32));\r
+        } else {\r
+          CopyMem (&DefaultData.Value, &IfrDefault->Value, IfrDefault->Header.Length - OFFSET_OF (EFI_IFR_DEFAULT, Value));\r
+        }\r
 \r
-      //\r
-      // Get the DefaultId\r
-      //\r
-      IfrDefault     = (EFI_IFR_DEFAULT *) IfrOpHdr;\r
-      VarDefaultId   = IfrDefault->DefaultId;\r
-      //\r
-      // Prepare new DefaultValue\r
-      //\r
-      DefaultData.Type        = DefaultValueFromOpcode;\r
-      DefaultData.DefaultId   = VarDefaultId;\r
-      if (QuestionReferBitField) {\r
-        CopyMem (&DefaultData.Value.u32, &IfrDefault->Value.u32, sizeof (UINT32));\r
-      } else {\r
-        CopyMem (&DefaultData.Value, &IfrDefault->Value, IfrDefault->Header.Length - OFFSET_OF (EFI_IFR_DEFAULT, Value));\r
-      }\r
+        // If the value field is expression, set the cleaned flag.\r
+        if (IfrDefault->Type ==  EFI_IFR_TYPE_OTHER) {\r
+          DefaultData.Cleaned = TRUE;\r
+        }\r
 \r
-      // If the value field is expression, set the cleaned flag.\r
-      if (IfrDefault->Type ==  EFI_IFR_TYPE_OTHER) {\r
-        DefaultData.Cleaned = TRUE;\r
-      }\r
-      //\r
-      // Add DefaultValue into current BlockData\r
-      //\r
-      InsertDefaultValue (BlockData, &DefaultData);\r
+        //\r
+        // Add DefaultValue into current BlockData\r
+        //\r
+        InsertDefaultValue (BlockData, &DefaultData);\r
 \r
-      //\r
-      // Set default value for other default id in the DefaultId list.\r
-      // when SmallestDefaultId == VarDefaultId means there are two defaults with same default Id.\r
-      // If the two defaults are both from default opcode, use the first default as the default value of other default Id.\r
-      // If one from flag and the other form default opcode, use the default opcode value as the default value of other default Id.\r
-      //\r
-      if ((SmallestDefaultId > VarDefaultId) || (SmallestDefaultId == VarDefaultId && !FromOtherDefaultOpcode)) {\r
-        FromOtherDefaultOpcode = TRUE;\r
-        SmallestDefaultId = VarDefaultId;\r
-        for (LinkData = DefaultIdArray->Entry.ForwardLink; LinkData != &DefaultIdArray->Entry; LinkData = LinkData->ForwardLink) {\r
-          DefaultDataPtr = BASE_CR (LinkData, IFR_DEFAULT_DATA, Entry);\r
-          if (DefaultDataPtr->DefaultId != DefaultData.DefaultId){\r
-            DefaultData.Type        = DefaultValueFromOtherDefault;\r
-            DefaultData.DefaultId   = DefaultDataPtr->DefaultId;\r
-            InsertDefaultValue (BlockData, &DefaultData);\r
+        //\r
+        // Set default value for other default id in the DefaultId list.\r
+        // when SmallestDefaultId == VarDefaultId means there are two defaults with same default Id.\r
+        // If the two defaults are both from default opcode, use the first default as the default value of other default Id.\r
+        // If one from flag and the other form default opcode, use the default opcode value as the default value of other default Id.\r
+        //\r
+        if ((SmallestDefaultId > VarDefaultId) || ((SmallestDefaultId == VarDefaultId) && !FromOtherDefaultOpcode)) {\r
+          FromOtherDefaultOpcode = TRUE;\r
+          SmallestDefaultId      = VarDefaultId;\r
+          for (LinkData = DefaultIdArray->Entry.ForwardLink; LinkData != &DefaultIdArray->Entry; LinkData = LinkData->ForwardLink) {\r
+            DefaultDataPtr = BASE_CR (LinkData, IFR_DEFAULT_DATA, Entry);\r
+            if (DefaultDataPtr->DefaultId != DefaultData.DefaultId) {\r
+              DefaultData.Type      = DefaultValueFromOtherDefault;\r
+              DefaultData.DefaultId = DefaultDataPtr->DefaultId;\r
+              InsertDefaultValue (BlockData, &DefaultData);\r
+            }\r
           }\r
         }\r
-      }\r
 \r
-      //\r
-      // After insert the default value, reset the cleaned value for next\r
-      // time used. If not set here, need to set the value before every time.\r
-      // use it.\r
-      //\r
-      DefaultData.Cleaned     = FALSE;\r
-      break;\r
+        //\r
+        // After insert the default value, reset the cleaned value for next\r
+        // time used. If not set here, need to set the value before every time.\r
+        // use it.\r
+        //\r
+        DefaultData.Cleaned = FALSE;\r
+        break;\r
 \r
-    case EFI_IFR_END_OP:\r
-      //\r
-      // End Opcode is for Var question.\r
-      //\r
-      QuestionReferBitField = FALSE;\r
-      if (BlockData != NULL) {\r
-        if (BlockData->Scope > 0) {\r
-          BlockData->Scope--;\r
+      case EFI_IFR_END_OP:\r
+        //\r
+        // End Opcode is for Var question.\r
+        //\r
+        QuestionReferBitField = FALSE;\r
+        if (BlockData != NULL) {\r
+          if (BlockData->Scope > 0) {\r
+            BlockData->Scope--;\r
+          }\r
+\r
+          if (BlockData->Scope == 0) {\r
+            BlockData = NULL;\r
+            //\r
+            // when finishing parsing a question, clean the SmallestDefaultId and GetDefaultFromDefaultOpcode.\r
+            //\r
+            SmallestDefaultId      = 0xFFFF;\r
+            FromOtherDefaultOpcode = FALSE;\r
+          }\r
         }\r
-        if (BlockData->Scope == 0) {\r
-          BlockData = NULL;\r
-          //\r
-          // when finishing parsing a question, clean the SmallestDefaultId and GetDefaultFromDefaultOpcode.\r
-          //\r
-          SmallestDefaultId = 0xFFFF;\r
-          FromOtherDefaultOpcode = FALSE;\r
+\r
+        break;\r
+\r
+      case EFI_IFR_GUID_OP:\r
+        if (CompareGuid ((EFI_GUID *)((UINT8 *)IfrOpHdr + sizeof (EFI_IFR_OP_HEADER)), &gEdkiiIfrBitVarstoreGuid)) {\r
+          QuestionReferBitField = TRUE;\r
         }\r
-      }\r
 \r
-      break;\r
+        break;\r
 \r
-    case EFI_IFR_GUID_OP:\r
-      if (CompareGuid ((EFI_GUID *)((UINT8 *)IfrOpHdr + sizeof (EFI_IFR_OP_HEADER)), &gEdkiiIfrBitVarstoreGuid)) {\r
-        QuestionReferBitField = TRUE;\r
-      }\r
-      break;\r
+      default:\r
+        if (BlockData != NULL) {\r
+          if (BlockData->Scope > 0) {\r
+            BlockData->Scope = (UINT8)(BlockData->Scope + IfrOpHdr->Scope);\r
+          }\r
 \r
-    default:\r
-      if (BlockData != NULL) {\r
-        if (BlockData->Scope > 0) {\r
-          BlockData->Scope = (UINT8) (BlockData->Scope + IfrOpHdr->Scope);\r
+          if (BlockData->Scope == 0) {\r
+            BlockData = NULL;\r
+          }\r
         }\r
 \r
-        if (BlockData->Scope == 0) {\r
-          BlockData = NULL;\r
-        }\r
-      }\r
-      break;\r
+        break;\r
     }\r
 \r
     IfrOffset     += IfrOpHdr->Length;\r
@@ -3070,10 +3192,10 @@ ParseIfrData (
   }\r
 \r
   //\r
-  //if Status == EFI_NOT_FOUND, just means the opcode is not required,not contain any error,\r
-  //so set the Status to EFI_SUCCESS.\r
+  // if Status == EFI_NOT_FOUND, just means the opcode is not required,not contain any error,\r
+  // so set the Status to EFI_SUCCESS.\r
   //\r
-  if (Status == EFI_NOT_FOUND){\r
+  if (Status == EFI_NOT_FOUND) {\r
     Status = EFI_SUCCESS;\r
   }\r
 \r
@@ -3082,7 +3204,7 @@ Done:
     BlockData = BASE_CR (LinkData, IFR_BLOCK_DATA, Entry);\r
     for (LinkDefault = BlockData->DefaultValueEntry.ForwardLink; LinkDefault != &BlockData->DefaultValueEntry; ) {\r
       DefaultDataPtr = BASE_CR (LinkDefault, IFR_DEFAULT_DATA, Entry);\r
-      LinkDefault = LinkDefault->ForwardLink;\r
+      LinkDefault    = LinkDefault->ForwardLink;\r
       if (DefaultDataPtr->Cleaned == TRUE) {\r
         RemoveEntryList (&DefaultDataPtr->Entry);\r
         FreePool (DefaultDataPtr);\r
@@ -3090,6 +3212,10 @@ Done:
     }\r
   }\r
 \r
+  if (IfrEfiVarStoreTmp != NULL) {\r
+    FreePool (IfrEfiVarStoreTmp);\r
+  }\r
+\r
   return Status;\r
 }\r
 \r
@@ -3103,30 +3229,31 @@ Done:
 **/\r
 IFR_BLOCK_DATA *\r
 GetBlockElement (\r
-  IN  EFI_STRING          ConfigRequest,\r
-  OUT EFI_STRING          *Progress\r
+  IN  EFI_STRING  ConfigRequest,\r
+  OUT EFI_STRING  *Progress\r
   )\r
 {\r
-  EFI_STRING           StringPtr;\r
-  IFR_BLOCK_DATA       *BlockData;\r
-  IFR_BLOCK_DATA       *RequestBlockArray;\r
-  EFI_STATUS           Status;\r
-  UINT8                *TmpBuffer;\r
-  UINT16               Offset;\r
-  UINT16               Width;\r
-  LIST_ENTRY           *Link;\r
-  IFR_BLOCK_DATA       *NextBlockData;\r
-  UINTN                Length;\r
+  EFI_STRING      StringPtr;\r
+  IFR_BLOCK_DATA  *BlockData;\r
+  IFR_BLOCK_DATA  *RequestBlockArray;\r
+  EFI_STATUS      Status;\r
+  UINT8           *TmpBuffer;\r
+  UINT16          Offset;\r
+  UINT16          Width;\r
+  LIST_ENTRY      *Link;\r
+  IFR_BLOCK_DATA  *NextBlockData;\r
+  UINTN           Length;\r
 \r
   TmpBuffer = NULL;\r
 \r
   //\r
   // Init RequestBlockArray\r
   //\r
-  RequestBlockArray = (IFR_BLOCK_DATA *) AllocateZeroPool (sizeof (IFR_BLOCK_DATA));\r
+  RequestBlockArray = (IFR_BLOCK_DATA *)AllocateZeroPool (sizeof (IFR_BLOCK_DATA));\r
   if (RequestBlockArray == NULL) {\r
     goto Done;\r
   }\r
+\r
   InitializeListHead (&RequestBlockArray->Entry);\r
 \r
   //\r
@@ -3144,7 +3271,7 @@ GetBlockElement (
     //\r
     // Skip the OFFSET string\r
     //\r
-    *Progress   = StringPtr;\r
+    *Progress  = StringPtr;\r
     StringPtr += StrLen (L"&OFFSET=");\r
     //\r
     // Get Offset\r
@@ -3153,6 +3280,7 @@ GetBlockElement (
     if (EFI_ERROR (Status)) {\r
       goto Done;\r
     }\r
+\r
     Offset = 0;\r
     CopyMem (\r
       &Offset,\r
@@ -3165,6 +3293,7 @@ GetBlockElement (
     if (StrnCmp (StringPtr, L"&WIDTH=", StrLen (L"&WIDTH=")) != 0) {\r
       goto Done;\r
     }\r
+\r
     StringPtr += StrLen (L"&WIDTH=");\r
 \r
     //\r
@@ -3174,6 +3303,7 @@ GetBlockElement (
     if (EFI_ERROR (Status)) {\r
       goto Done;\r
     }\r
+\r
     Width = 0;\r
     CopyMem (\r
       &Width,\r
@@ -3183,17 +3313,18 @@ GetBlockElement (
     FreePool (TmpBuffer);\r
 \r
     StringPtr += Length;\r
-    if (*StringPtr != 0 && *StringPtr != L'&') {\r
+    if ((*StringPtr != 0) && (*StringPtr != L'&')) {\r
       goto Done;\r
     }\r
 \r
     //\r
     // Set Block Data\r
     //\r
-    BlockData = (IFR_BLOCK_DATA *) AllocateZeroPool (sizeof (IFR_BLOCK_DATA));\r
+    BlockData = (IFR_BLOCK_DATA *)AllocateZeroPool (sizeof (IFR_BLOCK_DATA));\r
     if (BlockData == NULL) {\r
       goto Done;\r
     }\r
+\r
     BlockData->Offset = Offset;\r
     BlockData->Width  = Width;\r
     InsertBlockData (&RequestBlockArray->Entry, &BlockData);\r
@@ -3211,12 +3342,14 @@ GetBlockElement (
       if (EFI_ERROR (Status)) {\r
         goto Done;\r
       }\r
+\r
       FreePool (TmpBuffer);\r
       StringPtr += Length;\r
-      if (*StringPtr != 0 && *StringPtr != L'&') {\r
+      if ((*StringPtr != 0) && (*StringPtr != L'&')) {\r
         goto Done;\r
       }\r
     }\r
+\r
     //\r
     // If '\0', parsing is finished.\r
     //\r
@@ -3230,16 +3363,18 @@ GetBlockElement (
   //\r
   Link = RequestBlockArray->Entry.ForwardLink;\r
   while ((Link != &RequestBlockArray->Entry) && (Link->ForwardLink != &RequestBlockArray->Entry)) {\r
-    BlockData = BASE_CR (Link, IFR_BLOCK_DATA, Entry);\r
+    BlockData     = BASE_CR (Link, IFR_BLOCK_DATA, Entry);\r
     NextBlockData = BASE_CR (Link->ForwardLink, IFR_BLOCK_DATA, Entry);\r
     if ((NextBlockData->Offset >= BlockData->Offset) && (NextBlockData->Offset <= (BlockData->Offset + BlockData->Width))) {\r
       if ((NextBlockData->Offset + NextBlockData->Width) > (BlockData->Offset + BlockData->Width)) {\r
-        BlockData->Width = (UINT16) (NextBlockData->Offset + NextBlockData->Width - BlockData->Offset);\r
+        BlockData->Width = (UINT16)(NextBlockData->Offset + NextBlockData->Width - BlockData->Offset);\r
       }\r
+\r
       RemoveEntryList (Link->ForwardLink);\r
       FreePool (NextBlockData);\r
       continue;\r
     }\r
+\r
     Link = Link->ForwardLink;\r
   }\r
 \r
@@ -3272,25 +3407,26 @@ Done:
 **/\r
 IFR_BLOCK_DATA *\r
 GetNameElement (\r
-  IN  EFI_STRING           ConfigRequest,\r
-  OUT EFI_STRING           *Progress\r
+  IN  EFI_STRING  ConfigRequest,\r
+  OUT EFI_STRING  *Progress\r
   )\r
 {\r
-  EFI_STRING           StringPtr;\r
-  EFI_STRING           NextTag;\r
-  IFR_BLOCK_DATA       *BlockData;\r
-  IFR_BLOCK_DATA       *RequestBlockArray;\r
-  BOOLEAN              HasValue;\r
+  EFI_STRING      StringPtr;\r
+  EFI_STRING      NextTag;\r
+  IFR_BLOCK_DATA  *BlockData;\r
+  IFR_BLOCK_DATA  *RequestBlockArray;\r
+  BOOLEAN         HasValue;\r
 \r
   StringPtr = ConfigRequest;\r
 \r
   //\r
   // Init RequestBlockArray\r
   //\r
-  RequestBlockArray = (IFR_BLOCK_DATA *) AllocateZeroPool (sizeof (IFR_BLOCK_DATA));\r
+  RequestBlockArray = (IFR_BLOCK_DATA *)AllocateZeroPool (sizeof (IFR_BLOCK_DATA));\r
   if (RequestBlockArray == NULL) {\r
     goto Done;\r
   }\r
+\r
   InitializeListHead (&RequestBlockArray->Entry);\r
 \r
   //\r
@@ -3303,8 +3439,7 @@ GetNameElement (
   // <BlockName> ::= &'Name***=***\r
   //\r
   while (StringPtr != NULL && *StringPtr == L'&') {\r
-\r
-    *Progress   = StringPtr;\r
+    *Progress = StringPtr;\r
     //\r
     // Skip the L"&" string\r
     //\r
@@ -3321,7 +3456,7 @@ GetNameElement (
     //\r
     // Set Block Data\r
     //\r
-    BlockData = (IFR_BLOCK_DATA *) AllocateZeroPool (sizeof (IFR_BLOCK_DATA));\r
+    BlockData = (IFR_BLOCK_DATA *)AllocateZeroPool (sizeof (IFR_BLOCK_DATA));\r
     if (BlockData == NULL) {\r
       goto Done;\r
     }\r
@@ -3329,7 +3464,7 @@ GetNameElement (
     //\r
     // Get Name\r
     //\r
-    BlockData->Name = AllocateCopyPool(StrSize (StringPtr), StringPtr);\r
+    BlockData->Name = AllocateCopyPool (StrSize (StringPtr), StringPtr);\r
     InsertBlockData (&RequestBlockArray->Entry, &BlockData);\r
 \r
     if (HasValue) {\r
@@ -3361,6 +3496,7 @@ Done:
       if (BlockData->Name != NULL) {\r
         FreePool (BlockData->Name);\r
       }\r
+\r
       FreePool (BlockData);\r
     }\r
 \r
@@ -3383,18 +3519,18 @@ Done:
 **/\r
 BOOLEAN\r
 GenerateConfigRequest (\r
-  IN  CHAR16                       *ConfigHdr,\r
-  IN  IFR_VARSTORAGE_DATA          *VarStorageData,\r
-  OUT EFI_STATUS                   *Status,\r
-  IN OUT EFI_STRING                *ConfigRequest\r
+  IN  CHAR16               *ConfigHdr,\r
+  IN  IFR_VARSTORAGE_DATA  *VarStorageData,\r
+  OUT EFI_STATUS           *Status,\r
+  IN OUT EFI_STRING        *ConfigRequest\r
   )\r
 {\r
-  BOOLEAN               DataExist;\r
-  UINTN                 Length;\r
-  LIST_ENTRY            *Link;\r
-  CHAR16                *FullConfigRequest;\r
-  CHAR16                *StringPtr;\r
-  IFR_BLOCK_DATA        *BlockData;\r
+  BOOLEAN         DataExist;\r
+  UINTN           Length;\r
+  LIST_ENTRY      *Link;\r
+  CHAR16          *FullConfigRequest;\r
+  CHAR16          *StringPtr;\r
+  IFR_BLOCK_DATA  *BlockData;\r
 \r
   //\r
   // Append VarStorageData BlockEntry into *Request string\r
@@ -3434,6 +3570,7 @@ GenerateConfigRequest (
       Length = Length + (8 + 4 + 7 + 4);\r
     }\r
   }\r
+\r
   //\r
   // No any request block data is found. The request string can't be constructed.\r
   //\r
@@ -3450,6 +3587,7 @@ GenerateConfigRequest (
     *Status = EFI_OUT_OF_RESOURCES;\r
     return FALSE;\r
   }\r
+\r
   StringPtr = FullConfigRequest;\r
 \r
   //\r
@@ -3472,7 +3610,7 @@ GenerateConfigRequest (
         (1 + StrLen (BlockData->Name) + 1) * sizeof (CHAR16),\r
         L"&%s",\r
         BlockData->Name\r
-      );\r
+        );\r
     } else {\r
       //\r
       // Append &OFFSET=XXXX&WIDTH=YYYY\0\r
@@ -3483,10 +3621,12 @@ GenerateConfigRequest (
         L"&OFFSET=%04X&WIDTH=%04X",\r
         BlockData->Offset,\r
         BlockData->Width\r
-      );\r
+        );\r
     }\r
+\r
     StringPtr += StrLen (StringPtr);\r
   }\r
+\r
   //\r
   // Set to the got full request string.\r
   //\r
@@ -3495,6 +3635,7 @@ GenerateConfigRequest (
   if (*ConfigRequest != NULL) {\r
     FreePool (*ConfigRequest);\r
   }\r
+\r
   *ConfigRequest = FullConfigRequest;\r
 \r
   return TRUE;\r
@@ -3512,16 +3653,16 @@ GenerateConfigRequest (
 **/\r
 EFI_STATUS\r
 GenerateHdr (\r
-  IN   IFR_VARSTORAGE_DATA          *VarStorageData,\r
-  IN   EFI_DEVICE_PATH_PROTOCOL     *DevicePath,\r
-  OUT  EFI_STRING                   *ConfigHdr\r
+  IN   IFR_VARSTORAGE_DATA       *VarStorageData,\r
+  IN   EFI_DEVICE_PATH_PROTOCOL  *DevicePath,\r
+  OUT  EFI_STRING                *ConfigHdr\r
   )\r
 {\r
-  EFI_STRING                   GuidStr;\r
-  EFI_STRING                   NameStr;\r
-  EFI_STRING                   PathStr;\r
-  UINTN                        Length;\r
-  EFI_STATUS                   Status;\r
+  EFI_STRING  GuidStr;\r
+  EFI_STRING  NameStr;\r
+  EFI_STRING  PathStr;\r
+  UINTN       Length;\r
+  EFI_STATUS  Status;\r
 \r
   Status  = EFI_SUCCESS;\r
   NameStr = NULL;\r
@@ -3531,16 +3672,17 @@ GenerateHdr (
   //\r
   // Construct <ConfigHdr> : "GUID=...&NAME=...&PATH=..." by VarStorageData Guid, Name and DriverHandle\r
   //\r
-  GenerateSubStr (L"GUID=", sizeof (EFI_GUID), (VOID *) &VarStorageData->Guid, 1, &GuidStr);\r
+  GenerateSubStr (L"GUID=", sizeof (EFI_GUID), (VOID *)&VarStorageData->Guid, 1, &GuidStr);\r
   if (VarStorageData->Name != NULL) {\r
-    GenerateSubStr (L"NAME=", StrLen (VarStorageData->Name) * sizeof (CHAR16), (VOID *) VarStorageData->Name, 2, &NameStr);\r
+    GenerateSubStr (L"NAME=", StrLen (VarStorageData->Name) * sizeof (CHAR16), (VOID *)VarStorageData->Name, 2, &NameStr);\r
   } else {\r
     GenerateSubStr (L"NAME=", 0, NULL, 2, &NameStr);\r
   }\r
+\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
     &PathStr\r
     );\r
@@ -3554,11 +3696,13 @@ GenerateHdr (
     Status = EFI_OUT_OF_RESOURCES;\r
     goto Done;\r
   }\r
+\r
   StrCpyS (*ConfigHdr, Length, GuidStr);\r
   StrCatS (*ConfigHdr, Length, NameStr);\r
   if (VarStorageData->Name == NULL) {\r
     StrCatS (*ConfigHdr, Length, L"&");\r
   }\r
+\r
   StrCatS (*ConfigHdr, Length, PathStr);\r
 \r
   //\r
@@ -3582,7 +3726,6 @@ Done:
   return Status;\r
 }\r
 \r
-\r
 /**\r
   Update the default value in the block data which is used as bit var store.\r
 \r
@@ -3609,24 +3752,25 @@ Done:
 **/\r
 VOID\r
 UpdateDefaultValue (\r
-  IN LIST_ENTRY        *BlockLink\r
-)\r
+  IN LIST_ENTRY  *BlockLink\r
+  )\r
 {\r
-  LIST_ENTRY          *Link;\r
-  LIST_ENTRY          *ListEntry;\r
-  LIST_ENTRY          *LinkDefault;\r
-  IFR_BLOCK_DATA      *BlockData;\r
-  IFR_DEFAULT_DATA    *DefaultValueData;\r
-  UINTN               StartBit;\r
-  UINTN               EndBit;\r
-  UINT32              BitFieldDefaultValue;\r
+  LIST_ENTRY        *Link;\r
+  LIST_ENTRY        *ListEntry;\r
+  LIST_ENTRY        *LinkDefault;\r
+  IFR_BLOCK_DATA    *BlockData;\r
+  IFR_DEFAULT_DATA  *DefaultValueData;\r
+  UINTN             StartBit;\r
+  UINTN             EndBit;\r
+  UINT32            BitFieldDefaultValue;\r
 \r
   for ( Link = BlockLink->ForwardLink; Link != BlockLink; Link = Link->ForwardLink) {\r
     BlockData = BASE_CR (Link, IFR_BLOCK_DATA, Entry);\r
-    if (!BlockData ->IsBitVar) {\r
+    if (!BlockData->IsBitVar) {\r
       continue;\r
     }\r
-    ListEntry  = &BlockData->DefaultValueEntry;\r
+\r
+    ListEntry = &BlockData->DefaultValueEntry;\r
     //\r
     // Update the default value in the block data with all existing default id.\r
     //\r
@@ -3635,11 +3779,11 @@ UpdateDefaultValue (
       // Get the default data, and the value of the default data is for some field in the block.\r
       // Note: Default value for bit field question is stored as UINT32.\r
       //\r
-      DefaultValueData = BASE_CR (LinkDefault, IFR_DEFAULT_DATA, Entry);\r
+      DefaultValueData     = BASE_CR (LinkDefault, IFR_DEFAULT_DATA, Entry);\r
       BitFieldDefaultValue = DefaultValueData->Value.u32;\r
 \r
       StartBit = BlockData->BitOffset % 8;\r
-      EndBit = StartBit + BlockData->BitWidth - 1;\r
+      EndBit   = StartBit + BlockData->BitWidth - 1;\r
 \r
       //\r
       // Set the bit field default value to related bit filed, then we will got the new default vaule for the block data.\r
@@ -3688,36 +3832,37 @@ the first byte value of block.
 **/\r
 VOID\r
 MergeBlockDefaultValue (\r
-  IN OUT IFR_BLOCK_DATA      *FirstBlock,\r
-  IN OUT IFR_BLOCK_DATA      *SecondBlock\r
-)\r
+  IN OUT IFR_BLOCK_DATA  *FirstBlock,\r
+  IN OUT IFR_BLOCK_DATA  *SecondBlock\r
+  )\r
 {\r
-  LIST_ENTRY          *FirstListEntry;\r
-  LIST_ENTRY          *SecondListEntry;\r
-  LIST_ENTRY          *FirstDefaultLink;\r
-  LIST_ENTRY          *SecondDefaultLink;\r
-  IFR_DEFAULT_DATA    *FirstDefaultValueData;\r
-  IFR_DEFAULT_DATA    *SecondDefaultValueData;\r
-  UINT32              *FirstDefaultValue;\r
-  UINT32              *SecondDefaultValue;\r
-  UINT64              TotalValue;\r
-  UINT64              ShiftedValue;\r
-  UINT16              OffsetShift;\r
+  LIST_ENTRY        *FirstListEntry;\r
+  LIST_ENTRY        *SecondListEntry;\r
+  LIST_ENTRY        *FirstDefaultLink;\r
+  LIST_ENTRY        *SecondDefaultLink;\r
+  IFR_DEFAULT_DATA  *FirstDefaultValueData;\r
+  IFR_DEFAULT_DATA  *SecondDefaultValueData;\r
+  UINT32            *FirstDefaultValue;\r
+  UINT32            *SecondDefaultValue;\r
+  UINT64            TotalValue;\r
+  UINT64            ShiftedValue;\r
+  UINT16            OffsetShift;\r
 \r
   FirstListEntry = &FirstBlock->DefaultValueEntry;\r
   for (FirstDefaultLink = FirstListEntry->ForwardLink; FirstDefaultLink != FirstListEntry; FirstDefaultLink = FirstDefaultLink->ForwardLink) {\r
     FirstDefaultValueData = BASE_CR (FirstDefaultLink, IFR_DEFAULT_DATA, Entry);\r
-    SecondListEntry = &SecondBlock->DefaultValueEntry;\r
+    SecondListEntry       = &SecondBlock->DefaultValueEntry;\r
     for (SecondDefaultLink = SecondListEntry->ForwardLink; SecondDefaultLink != SecondListEntry; SecondDefaultLink = SecondDefaultLink->ForwardLink) {\r
       SecondDefaultValueData = BASE_CR (SecondDefaultLink, IFR_DEFAULT_DATA, Entry);\r
       if (FirstDefaultValueData->DefaultId != SecondDefaultValueData->DefaultId) {\r
         continue;\r
       }\r
+\r
       //\r
       // Find default value with same default id in the two blocks.\r
       // Note: Default value for bit field question is stored as UINT32 type.\r
       //\r
-      FirstDefaultValue = &FirstDefaultValueData->Value.u32;\r
+      FirstDefaultValue  = &FirstDefaultValueData->Value.u32;\r
       SecondDefaultValue = &SecondDefaultValueData->Value.u32;\r
       //\r
       // 1. Get the default value of the whole blcok that can just cover FirstBlock and SecondBlock.\r
@@ -3725,17 +3870,17 @@ MergeBlockDefaultValue (
       //    on the offset and width of FirstBlock and SecondBlock.\r
       //\r
       if (FirstBlock->Offset > SecondBlock->Offset) {\r
-        OffsetShift = FirstBlock->Offset - SecondBlock->Offset;\r
-        ShiftedValue = LShiftU64 ((UINT64) (*FirstDefaultValue), OffsetShift * 8);\r
-        TotalValue = ShiftedValue | (UINT64) (*SecondDefaultValue);\r
-        *SecondDefaultValue = (UINT32) BitFieldRead64 (TotalValue, 0, SecondBlock->Width * 8 -1);\r
-        *FirstDefaultValue = (UINT32) BitFieldRead64 (TotalValue, OffsetShift * 8, OffsetShift * 8 + FirstBlock->Width *8 -1);\r
+        OffsetShift         = FirstBlock->Offset - SecondBlock->Offset;\r
+        ShiftedValue        = LShiftU64 ((UINT64)(*FirstDefaultValue), OffsetShift * 8);\r
+        TotalValue          = ShiftedValue | (UINT64)(*SecondDefaultValue);\r
+        *SecondDefaultValue = (UINT32)BitFieldRead64 (TotalValue, 0, SecondBlock->Width * 8 -1);\r
+        *FirstDefaultValue  = (UINT32)BitFieldRead64 (TotalValue, OffsetShift * 8, OffsetShift * 8 + FirstBlock->Width *8 -1);\r
       } else {\r
-        OffsetShift = SecondBlock->Offset -FirstBlock->Offset;\r
-        ShiftedValue = LShiftU64 ((UINT64) (*SecondDefaultValue), OffsetShift * 8);\r
-        TotalValue = ShiftedValue | (UINT64) (*FirstDefaultValue);\r
-        *FirstDefaultValue = (UINT32) BitFieldRead64 (TotalValue, 0, FirstBlock->Width * 8 -1);\r
-        *SecondDefaultValue = (UINT32) BitFieldRead64 (TotalValue, OffsetShift * 8, OffsetShift * 8 + SecondBlock->Width *8 -1);\r
+        OffsetShift         = SecondBlock->Offset -FirstBlock->Offset;\r
+        ShiftedValue        = LShiftU64 ((UINT64)(*SecondDefaultValue), OffsetShift * 8);\r
+        TotalValue          = ShiftedValue | (UINT64)(*FirstDefaultValue);\r
+        *FirstDefaultValue  = (UINT32)BitFieldRead64 (TotalValue, 0, FirstBlock->Width * 8 -1);\r
+        *SecondDefaultValue = (UINT32)BitFieldRead64 (TotalValue, OffsetShift * 8, OffsetShift * 8 + SecondBlock->Width *8 -1);\r
       }\r
     }\r
   }\r
@@ -3750,13 +3895,13 @@ Update the default value in the block data which used as Bit VarStore
 **/\r
 VOID\r
 UpdateBlockDataArray (\r
-  IN LIST_ENTRY        *BlockLink\r
-)\r
+  IN LIST_ENTRY  *BlockLink\r
+  )\r
 {\r
-  LIST_ENTRY          *Link;\r
-  LIST_ENTRY          *TempLink;\r
-  IFR_BLOCK_DATA      *BlockData;\r
-  IFR_BLOCK_DATA      *NextBlockData;\r
+  LIST_ENTRY      *Link;\r
+  LIST_ENTRY      *TempLink;\r
+  IFR_BLOCK_DATA  *BlockData;\r
+  IFR_BLOCK_DATA  *NextBlockData;\r
 \r
   //\r
   // 1. Update default value in BitVar block data.\r
@@ -3773,14 +3918,16 @@ UpdateBlockDataArray (
   //\r
   for (Link = BlockLink->ForwardLink; Link != BlockLink; Link = Link->ForwardLink) {\r
     BlockData = BASE_CR (Link, IFR_BLOCK_DATA, Entry);\r
-    if (!BlockData ->IsBitVar) {\r
+    if (!BlockData->IsBitVar) {\r
       continue;\r
     }\r
+\r
     for (TempLink = Link->ForwardLink; TempLink != BlockLink; TempLink = TempLink->ForwardLink) {\r
       NextBlockData = BASE_CR (TempLink, IFR_BLOCK_DATA, Entry);\r
-      if (!NextBlockData->IsBitVar || NextBlockData->Offset >= BlockData->Offset + BlockData->Width || BlockData->Offset >= NextBlockData->Offset + NextBlockData->Width) {\r
+      if (!NextBlockData->IsBitVar || (NextBlockData->Offset >= BlockData->Offset + BlockData->Width) || (BlockData->Offset >= NextBlockData->Offset + NextBlockData->Width)) {\r
         continue;\r
       }\r
+\r
       //\r
       // Find two blocks are used as bit VarStore and have overlap region, so need to merge default value of these two blocks.\r
       //\r
@@ -3803,27 +3950,27 @@ UpdateBlockDataArray (
 **/\r
 EFI_STATUS\r
 GenerateAltConfigResp (\r
-  IN  EFI_HII_HANDLE               HiiHandle,\r
-  IN  CHAR16                       *ConfigHdr,\r
-  IN  IFR_VARSTORAGE_DATA          *VarStorageData,\r
-  IN  IFR_DEFAULT_DATA             *DefaultIdArray,\r
-  IN OUT EFI_STRING                *DefaultAltCfgResp\r
+  IN  EFI_HII_HANDLE       HiiHandle,\r
+  IN  CHAR16               *ConfigHdr,\r
+  IN  IFR_VARSTORAGE_DATA  *VarStorageData,\r
+  IN  IFR_DEFAULT_DATA     *DefaultIdArray,\r
+  IN OUT EFI_STRING        *DefaultAltCfgResp\r
   )\r
 {\r
-  BOOLEAN               DataExist;\r
-  UINTN                 Length;\r
-  LIST_ENTRY            *Link;\r
-  LIST_ENTRY            *LinkData;\r
-  LIST_ENTRY            *LinkDefault;\r
-  LIST_ENTRY            *ListEntry;\r
-  CHAR16                *StringPtr;\r
-  IFR_BLOCK_DATA        *BlockData;\r
-  IFR_DEFAULT_DATA      *DefaultId;\r
-  IFR_DEFAULT_DATA      *DefaultValueData;\r
-  UINTN                 Width;\r
-  UINT8                 *TmpBuffer;\r
-  CHAR16                *DefaultString;\r
-  UINTN                 StrSize;\r
+  BOOLEAN           DataExist;\r
+  UINTN             Length;\r
+  LIST_ENTRY        *Link;\r
+  LIST_ENTRY        *LinkData;\r
+  LIST_ENTRY        *LinkDefault;\r
+  LIST_ENTRY        *ListEntry;\r
+  CHAR16            *StringPtr;\r
+  IFR_BLOCK_DATA    *BlockData;\r
+  IFR_DEFAULT_DATA  *DefaultId;\r
+  IFR_DEFAULT_DATA  *DefaultValueData;\r
+  UINTN             Width;\r
+  UINT8             *TmpBuffer;\r
+  CHAR16            *DefaultString;\r
+  UINTN             StrSize;\r
 \r
   BlockData     = NULL;\r
   DataExist     = FALSE;\r
@@ -3845,12 +3992,13 @@ GenerateAltConfigResp (
 \r
     for (LinkData = VarStorageData->BlockEntry.ForwardLink; LinkData != &VarStorageData->BlockEntry; LinkData = LinkData->ForwardLink) {\r
       BlockData = BASE_CR (LinkData, IFR_BLOCK_DATA, Entry);\r
-      ListEntry     = &BlockData->DefaultValueEntry;\r
+      ListEntry = &BlockData->DefaultValueEntry;\r
       for (LinkDefault = ListEntry->ForwardLink; LinkDefault != ListEntry; LinkDefault = LinkDefault->ForwardLink) {\r
         DefaultValueData = BASE_CR (LinkDefault, IFR_DEFAULT_DATA, Entry);\r
         if (DefaultValueData->DefaultId != DefaultId->DefaultId) {\r
           continue;\r
         }\r
+\r
         if (VarStorageData->Type == EFI_HII_VARSTORE_NAME_VALUE) {\r
           //\r
           // Add length for "&Name1=zzzzzzzzzzzz"\r
@@ -3864,6 +4012,7 @@ GenerateAltConfigResp (
           //\r
           Length += (8 + 4 + 7 + 4 + 7 + BlockData->Width * 2);\r
         }\r
+\r
         DataExist = TRUE;\r
       }\r
     }\r
@@ -3883,6 +4032,7 @@ GenerateAltConfigResp (
   if (*DefaultAltCfgResp == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
+\r
   StringPtr = *DefaultAltCfgResp;\r
 \r
   //\r
@@ -3908,12 +4058,13 @@ GenerateAltConfigResp (
 \r
     for (LinkData = VarStorageData->BlockEntry.ForwardLink; LinkData != &VarStorageData->BlockEntry; LinkData = LinkData->ForwardLink) {\r
       BlockData = BASE_CR (LinkData, IFR_BLOCK_DATA, Entry);\r
-      ListEntry     = &BlockData->DefaultValueEntry;\r
+      ListEntry = &BlockData->DefaultValueEntry;\r
       for (LinkDefault = ListEntry->ForwardLink; LinkDefault != ListEntry; LinkDefault = LinkDefault->ForwardLink) {\r
         DefaultValueData = BASE_CR (LinkDefault, IFR_DEFAULT_DATA, Entry);\r
         if (DefaultValueData->DefaultId != DefaultId->DefaultId) {\r
           continue;\r
         }\r
+\r
         if (VarStorageData->Type == EFI_HII_VARSTORE_NAME_VALUE) {\r
           UnicodeSPrint (\r
             StringPtr,\r
@@ -3936,26 +4087,29 @@ GenerateAltConfigResp (
             );\r
           StringPtr += StrLen (StringPtr);\r
         }\r
+\r
         Width = BlockData->Width;\r
         //\r
         // Convert Value to a hex string in "%x" format\r
         // NOTE: This is in the opposite byte that GUID and PATH use\r
         //\r
-        if (BlockData->OpCode == EFI_IFR_STRING_OP){\r
-          DefaultString   = InternalGetString(HiiHandle, DefaultValueData->Value.string);\r
-          TmpBuffer = AllocateZeroPool (Width);\r
+        if (BlockData->OpCode == EFI_IFR_STRING_OP) {\r
+          DefaultString = InternalGetString (HiiHandle, DefaultValueData->Value.string);\r
+          TmpBuffer     = AllocateZeroPool (Width);\r
           ASSERT (TmpBuffer != NULL);\r
           if (DefaultString != NULL) {\r
-            StrSize = StrLen(DefaultString)* sizeof (CHAR16);\r
+            StrSize = StrLen (DefaultString)* sizeof (CHAR16);\r
             if (StrSize > Width) {\r
               StrSize = Width;\r
             }\r
-            CopyMem (TmpBuffer, (UINT8 *) DefaultString, StrSize);\r
+\r
+            CopyMem (TmpBuffer, (UINT8 *)DefaultString, StrSize);\r
           }\r
         } else {\r
-          TmpBuffer = (UINT8 *) &(DefaultValueData->Value);\r
+          TmpBuffer = (UINT8 *)&(DefaultValueData->Value);\r
         }\r
-        for (; Width > 0 && (TmpBuffer != NULL); Width--) {\r
+\r
+        for ( ; Width > 0 && (TmpBuffer != NULL); Width--) {\r
           UnicodeValueToStringS (\r
             StringPtr,\r
             Length * sizeof (CHAR16) - ((UINTN)StringPtr - (UINTN)*DefaultAltCfgResp),\r
@@ -3965,13 +4119,15 @@ GenerateAltConfigResp (
             );\r
           StringPtr += StrnLenS (StringPtr, Length - ((UINTN)StringPtr - (UINTN)*DefaultAltCfgResp) / sizeof (CHAR16));\r
         }\r
-        if (DefaultString != NULL){\r
-          FreePool(DefaultString);\r
+\r
+        if (DefaultString != NULL) {\r
+          FreePool (DefaultString);\r
           DefaultString = NULL;\r
         }\r
-        if (BlockData->OpCode == EFI_IFR_STRING_OP && TmpBuffer != NULL) {\r
-          FreePool(TmpBuffer);\r
-          TmpBuffer  = NULL;\r
+\r
+        if ((BlockData->OpCode == EFI_IFR_STRING_OP) && (TmpBuffer != NULL)) {\r
+          FreePool (TmpBuffer);\r
+          TmpBuffer = NULL;\r
         }\r
       }\r
     }\r
@@ -4028,28 +4184,28 @@ GenerateAltConfigResp (
 EFI_STATUS\r
 EFIAPI\r
 GetFullStringFromHiiFormPackages (\r
-  IN     HII_DATABASE_RECORD        *DataBaseRecord,\r
-  IN     EFI_DEVICE_PATH_PROTOCOL   *DevicePath,\r
-  IN OUT EFI_STRING                 *Request,\r
-  IN OUT EFI_STRING                 *AltCfgResp,\r
-  OUT    EFI_STRING                 *PointerProgress OPTIONAL\r
+  IN     HII_DATABASE_RECORD       *DataBaseRecord,\r
+  IN     EFI_DEVICE_PATH_PROTOCOL  *DevicePath,\r
+  IN OUT EFI_STRING                *Request,\r
+  IN OUT EFI_STRING                *AltCfgResp,\r
+  OUT    EFI_STRING                *PointerProgress OPTIONAL\r
   )\r
 {\r
-  EFI_STATUS                   Status;\r
-  UINT8                        *HiiFormPackage;\r
-  UINTN                        PackageSize;\r
-  IFR_BLOCK_DATA               *RequestBlockArray;\r
-  IFR_BLOCK_DATA               *BlockData;\r
-  IFR_DEFAULT_DATA             *DefaultValueData;\r
-  IFR_DEFAULT_DATA             *DefaultId;\r
-  IFR_DEFAULT_DATA             *DefaultIdArray;\r
-  IFR_VARSTORAGE_DATA          *VarStorageData;\r
-  EFI_STRING                   DefaultAltCfgResp;\r
-  EFI_STRING                   ConfigHdr;\r
-  EFI_STRING                   StringPtr;\r
-  EFI_STRING                   Progress;\r
-\r
-  if (DataBaseRecord == NULL || DevicePath == NULL || Request == NULL || AltCfgResp == NULL) {\r
+  EFI_STATUS           Status;\r
+  UINT8                *HiiFormPackage;\r
+  UINTN                PackageSize;\r
+  IFR_BLOCK_DATA       *RequestBlockArray;\r
+  IFR_BLOCK_DATA       *BlockData;\r
+  IFR_DEFAULT_DATA     *DefaultValueData;\r
+  IFR_DEFAULT_DATA     *DefaultId;\r
+  IFR_DEFAULT_DATA     *DefaultIdArray;\r
+  IFR_VARSTORAGE_DATA  *VarStorageData;\r
+  EFI_STRING           DefaultAltCfgResp;\r
+  EFI_STRING           ConfigHdr;\r
+  EFI_STRING           StringPtr;\r
+  EFI_STRING           Progress;\r
+\r
+  if ((DataBaseRecord == NULL) || (DevicePath == NULL) || (Request == NULL) || (AltCfgResp == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
@@ -4080,28 +4236,33 @@ GetFullStringFromHiiFormPackages (
     // Jump <ConfigHdr>\r
     //\r
     if (StrnCmp (StringPtr, L"GUID=", StrLen (L"GUID=")) != 0) {\r
-      Status   = EFI_INVALID_PARAMETER;\r
+      Status = EFI_INVALID_PARAMETER;\r
       goto Done;\r
     }\r
+\r
     StringPtr += StrLen (L"GUID=");\r
     while (*StringPtr != L'\0' && StrnCmp (StringPtr, L"&NAME=", StrLen (L"&NAME=")) != 0) {\r
       StringPtr++;\r
     }\r
+\r
     if (*StringPtr == L'\0') {\r
       Status = EFI_INVALID_PARAMETER;\r
       goto Done;\r
     }\r
+\r
     StringPtr += StrLen (L"&NAME=");\r
     while (*StringPtr != L'\0' && StrnCmp (StringPtr, L"&PATH=", StrLen (L"&PATH=")) != 0) {\r
       StringPtr++;\r
     }\r
+\r
     if (*StringPtr == L'\0') {\r
       Status = EFI_INVALID_PARAMETER;\r
       goto Done;\r
     }\r
+\r
     StringPtr += StrLen (L"&PATH=");\r
     while (*StringPtr != L'\0' && *StringPtr != L'&') {\r
-      StringPtr ++;\r
+      StringPtr++;\r
     }\r
 \r
     if (*StringPtr == L'\0') {\r
@@ -4117,9 +4278,9 @@ GetFullStringFromHiiFormPackages (
   //\r
   if (StringPtr != NULL) {\r
     if (StrStr (StringPtr, L"&OFFSET=") != NULL) {\r
-      RequestBlockArray = GetBlockElement(StringPtr, &Progress);\r
+      RequestBlockArray = GetBlockElement (StringPtr, &Progress);\r
     } else {\r
-      RequestBlockArray = GetNameElement(StringPtr, &Progress);\r
+      RequestBlockArray = GetNameElement (StringPtr, &Progress);\r
     }\r
 \r
     if (RequestBlockArray == NULL) {\r
@@ -4131,21 +4292,23 @@ GetFullStringFromHiiFormPackages (
   //\r
   // Initialize DefaultIdArray to store the map between DeaultId and DefaultName\r
   //\r
-  DefaultIdArray   = (IFR_DEFAULT_DATA *) AllocateZeroPool (sizeof (IFR_DEFAULT_DATA));\r
+  DefaultIdArray = (IFR_DEFAULT_DATA *)AllocateZeroPool (sizeof (IFR_DEFAULT_DATA));\r
   if (DefaultIdArray == NULL) {\r
     Status = EFI_OUT_OF_RESOURCES;\r
     goto Done;\r
   }\r
+\r
   InitializeListHead (&DefaultIdArray->Entry);\r
 \r
   //\r
   // Initialize VarStorageData to store the var store Block and Default value information.\r
   //\r
-  VarStorageData = (IFR_VARSTORAGE_DATA *) AllocateZeroPool (sizeof (IFR_VARSTORAGE_DATA));\r
+  VarStorageData = (IFR_VARSTORAGE_DATA *)AllocateZeroPool (sizeof (IFR_VARSTORAGE_DATA));\r
   if (VarStorageData == NULL) {\r
     Status = EFI_OUT_OF_RESOURCES;\r
     goto Done;\r
   }\r
+\r
   InitializeListHead (&VarStorageData->Entry);\r
   InitializeListHead (&VarStorageData->BlockEntry);\r
 \r
@@ -4156,13 +4319,15 @@ GetFullStringFromHiiFormPackages (
   //\r
   // Parse the opcode in form package to get the default setting.\r
   //\r
-  Status = ParseIfrData (DataBaseRecord->Handle,\r
-                         HiiFormPackage,\r
-                         (UINT32) PackageSize,\r
-                         *Request,\r
-                         RequestBlockArray,\r
-                         VarStorageData,\r
-                         DefaultIdArray);\r
+  Status = ParseIfrData (\r
+             DataBaseRecord->Handle,\r
+             HiiFormPackage,\r
+             (UINT32)PackageSize,\r
+             *Request,\r
+             RequestBlockArray,\r
+             VarStorageData,\r
+             DefaultIdArray\r
+             );\r
   if (EFI_ERROR (Status)) {\r
     goto Done;\r
   }\r
@@ -4170,7 +4335,7 @@ GetFullStringFromHiiFormPackages (
   //\r
   // No requested varstore in IFR data and directly return\r
   //\r
-  if (VarStorageData->Type == 0 && VarStorageData->Name == NULL) {\r
+  if ((VarStorageData->Type == 0) && (VarStorageData->Name == NULL)) {\r
     Status = EFI_SUCCESS;\r
     goto Done;\r
   }\r
@@ -4184,7 +4349,7 @@ GetFullStringFromHiiFormPackages (
   }\r
 \r
   if (RequestBlockArray == NULL) {\r
-    if (!GenerateConfigRequest(ConfigHdr, VarStorageData, &Status, Request)) {\r
+    if (!GenerateConfigRequest (ConfigHdr, VarStorageData, &Status, Request)) {\r
       goto Done;\r
     }\r
   }\r
@@ -4194,7 +4359,7 @@ GetFullStringFromHiiFormPackages (
   // Go through all VarStorageData Entry and get the DefaultId array for each one\r
   // Then construct them all to : ConfigHdr AltConfigHdr ConfigBody AltConfigHdr ConfigBody\r
   //\r
-  Status = GenerateAltConfigResp (DataBaseRecord->Handle,ConfigHdr, VarStorageData, DefaultIdArray, &DefaultAltCfgResp);\r
+  Status = GenerateAltConfigResp (DataBaseRecord->Handle, ConfigHdr, VarStorageData, DefaultIdArray, &DefaultAltCfgResp);\r
   if (EFI_ERROR (Status)) {\r
     goto Done;\r
   }\r
@@ -4202,7 +4367,7 @@ GetFullStringFromHiiFormPackages (
   //\r
   // 5. Merge string into the input AltCfgResp if the input *AltCfgResp is not NULL.\r
   //\r
-  if (*AltCfgResp != NULL && DefaultAltCfgResp != NULL) {\r
+  if ((*AltCfgResp != NULL) && (DefaultAltCfgResp != NULL)) {\r
     Status = MergeDefaultString (AltCfgResp, DefaultAltCfgResp);\r
     FreePool (DefaultAltCfgResp);\r
   } else if (*AltCfgResp == NULL) {\r
@@ -4220,6 +4385,7 @@ Done:
       if (BlockData->Name != NULL) {\r
         FreePool (BlockData->Name);\r
       }\r
+\r
       FreePool (BlockData);\r
     }\r
 \r
@@ -4236,6 +4402,7 @@ Done:
       if (BlockData->Name != NULL) {\r
         FreePool (BlockData->Name);\r
       }\r
+\r
       //\r
       // Free default value link array\r
       //\r
@@ -4244,12 +4411,15 @@ Done:
         RemoveEntryList (&DefaultValueData->Entry);\r
         FreePool (DefaultValueData);\r
       }\r
+\r
       FreePool (BlockData);\r
     }\r
-    if (VarStorageData ->Name != NULL) {\r
-      FreePool (VarStorageData ->Name);\r
-      VarStorageData ->Name = NULL;\r
+\r
+    if (VarStorageData->Name != NULL) {\r
+      FreePool (VarStorageData->Name);\r
+      VarStorageData->Name = NULL;\r
     }\r
+\r
     FreePool (VarStorageData);\r
   }\r
 \r
@@ -4262,6 +4432,7 @@ Done:
       RemoveEntryList (&DefaultId->Entry);\r
       FreePool (DefaultId);\r
     }\r
+\r
     FreePool (DefaultIdArray);\r
   }\r
 \r
@@ -4327,11 +4498,11 @@ GetConfigRespFromEfiVarStore (
   OUT EFI_STRING                             *AccessProgress\r
   )\r
 {\r
-  EFI_STATUS Status;\r
-  EFI_STRING VarStoreName;\r
-  UINTN      NameSize;\r
-  UINT8      *VarStore;\r
-  UINTN      BufferSize;\r
+  EFI_STATUS  Status;\r
+  EFI_STRING  VarStoreName;\r
+  UINTN       NameSize;\r
+  UINT8       *VarStore;\r
+  UINTN       BufferSize;\r
 \r
   Status          = EFI_SUCCESS;\r
   BufferSize      = 0;\r
@@ -4339,14 +4510,14 @@ GetConfigRespFromEfiVarStore (
   VarStoreName    = NULL;\r
   *AccessProgress = Request;\r
 \r
-  NameSize = AsciiStrSize ((CHAR8 *)EfiVarStoreInfo->Name);\r
+  NameSize     = AsciiStrSize ((CHAR8 *)EfiVarStoreInfo->Name);\r
   VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));\r
   if (VarStoreName == NULL) {\r
     Status = EFI_OUT_OF_RESOURCES;\r
     goto Done;\r
   }\r
-  AsciiStrToUnicodeStrS ((CHAR8 *) EfiVarStoreInfo->Name, VarStoreName, NameSize);\r
 \r
+  AsciiStrToUnicodeStrS ((CHAR8 *)EfiVarStoreInfo->Name, VarStoreName, NameSize);\r
 \r
   Status = gRT->GetVariable (VarStoreName, &EfiVarStoreInfo->Guid, NULL, &BufferSize, NULL);\r
   if (Status != EFI_BUFFER_TOO_SMALL) {\r
@@ -4360,7 +4531,7 @@ GetConfigRespFromEfiVarStore (
     goto Done;\r
   }\r
 \r
-  Status = HiiBlockToConfig(This, Request, VarStore, BufferSize, RequestResp, AccessProgress);\r
+  Status = HiiBlockToConfig (This, Request, VarStore, BufferSize, RequestResp, AccessProgress);\r
   if (EFI_ERROR (Status)) {\r
     goto Done;\r
   }\r
@@ -4377,7 +4548,6 @@ Done:
   return Status;\r
 }\r
 \r
-\r
 /**\r
   This function route the full request resp string for efi varstore.\r
 \r
@@ -4404,26 +4574,27 @@ RouteConfigRespForEfiVarStore (
   OUT EFI_STRING                             *Result\r
   )\r
 {\r
-  EFI_STATUS Status;\r
-  EFI_STRING VarStoreName;\r
-  UINTN      NameSize;\r
-  UINT8      *VarStore;\r
-  UINTN      BufferSize;\r
-  UINTN      BlockSize;\r
+  EFI_STATUS  Status;\r
+  EFI_STRING  VarStoreName;\r
+  UINTN       NameSize;\r
+  UINT8       *VarStore;\r
+  UINTN       BufferSize;\r
+  UINTN       BlockSize;\r
 \r
   Status       = EFI_SUCCESS;\r
   BufferSize   = 0;\r
   VarStore     = NULL;\r
   VarStoreName = NULL;\r
-  *Result = RequestResp;\r
+  *Result      = RequestResp;\r
 \r
-  NameSize = AsciiStrSize ((CHAR8 *)EfiVarStoreInfo->Name);\r
+  NameSize     = AsciiStrSize ((CHAR8 *)EfiVarStoreInfo->Name);\r
   VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));\r
   if (VarStoreName == NULL) {\r
     Status = EFI_OUT_OF_RESOURCES;\r
     goto Done;\r
   }\r
-  AsciiStrToUnicodeStrS ((CHAR8 *) EfiVarStoreInfo->Name, VarStoreName, NameSize);\r
+\r
+  AsciiStrToUnicodeStrS ((CHAR8 *)EfiVarStoreInfo->Name, VarStoreName, NameSize);\r
 \r
   Status = gRT->GetVariable (VarStoreName, &EfiVarStoreInfo->Guid, NULL, &BufferSize, NULL);\r
   if (Status != EFI_BUFFER_TOO_SMALL) {\r
@@ -4432,14 +4603,14 @@ RouteConfigRespForEfiVarStore (
   }\r
 \r
   BlockSize = BufferSize;\r
-  VarStore = AllocateZeroPool (BufferSize);\r
+  VarStore  = AllocateZeroPool (BufferSize);\r
   ASSERT (VarStore != NULL);\r
   Status = gRT->GetVariable (VarStoreName, &EfiVarStoreInfo->Guid, NULL, &BufferSize, VarStore);\r
   if (EFI_ERROR (Status)) {\r
     goto Done;\r
   }\r
 \r
-  Status = HiiConfigToBlock(This, RequestResp, VarStore, &BlockSize, Result);\r
+  Status = HiiConfigToBlock (This, RequestResp, VarStore, &BlockSize, Result);\r
   if (EFI_ERROR (Status)) {\r
     goto Done;\r
   }\r
@@ -4473,16 +4644,16 @@ Done:
 **/\r
 CHAR16 *\r
 OffsetWidthValidate (\r
-  CHAR16          *ConfigElements\r
+  CHAR16  *ConfigElements\r
   )\r
 {\r
-  CHAR16    *StringPtr;\r
-  CHAR16    *RetVal;\r
+  CHAR16  *StringPtr;\r
+  CHAR16  *RetVal;\r
 \r
   StringPtr = ConfigElements;\r
 \r
   while (1) {\r
-    RetVal    = StringPtr;\r
+    RetVal = StringPtr;\r
     if (StrnCmp (StringPtr, L"&OFFSET=", StrLen (L"&OFFSET=")) != 0) {\r
       return RetVal;\r
     }\r
@@ -4490,13 +4661,14 @@ OffsetWidthValidate (
     while (*StringPtr != L'\0' && StrnCmp (StringPtr, L"&WIDTH=", StrLen (L"&WIDTH=")) != 0) {\r
       StringPtr++;\r
     }\r
+\r
     if (*StringPtr == L'\0') {\r
       return RetVal;\r
     }\r
 \r
     StringPtr += StrLen (L"&WIDTH=");\r
     while (*StringPtr != L'\0' && StrnCmp (StringPtr, L"&OFFSET=", StrLen (L"&OFFSET=")) != 0) {\r
-      StringPtr ++;\r
+      StringPtr++;\r
     }\r
 \r
     if (*StringPtr == L'\0') {\r
@@ -4517,11 +4689,11 @@ OffsetWidthValidate (
 **/\r
 CHAR16 *\r
 NameValueValidate (\r
-  CHAR16          *ConfigElements\r
+  CHAR16  *ConfigElements\r
   )\r
 {\r
-  CHAR16    *StringPtr;\r
-  CHAR16    *RetVal;\r
+  CHAR16  *StringPtr;\r
+  CHAR16  *RetVal;\r
 \r
   StringPtr = ConfigElements;\r
 \r
@@ -4530,6 +4702,7 @@ NameValueValidate (
     if (*StringPtr != L'&') {\r
       return RetVal;\r
     }\r
+\r
     StringPtr += 1;\r
 \r
     StringPtr = StrStr (StringPtr, L"&");\r
@@ -4551,11 +4724,11 @@ NameValueValidate (
 **/\r
 CHAR16 *\r
 ConfigRequestValidate (\r
-  CHAR16          *ConfigRequest\r
+  CHAR16  *ConfigRequest\r
   )\r
 {\r
-  BOOLEAN            HasNameField;\r
-  CHAR16             *StringPtr;\r
+  BOOLEAN  HasNameField;\r
+  CHAR16   *StringPtr;\r
 \r
   HasNameField = TRUE;\r
   StringPtr    = ConfigRequest;\r
@@ -4566,26 +4739,32 @@ ConfigRequestValidate (
   if (StrnCmp (StringPtr, L"GUID=", StrLen (L"GUID=")) != 0) {\r
     return ConfigRequest;\r
   }\r
+\r
   StringPtr += StrLen (L"GUID=");\r
   while (*StringPtr != L'\0' && StrnCmp (StringPtr, L"&NAME=", StrLen (L"&NAME=")) != 0) {\r
     StringPtr++;\r
   }\r
+\r
   if (*StringPtr == L'\0') {\r
     return ConfigRequest;\r
   }\r
+\r
   StringPtr += StrLen (L"&NAME=");\r
   if (*StringPtr == L'&') {\r
     HasNameField = FALSE;\r
   }\r
+\r
   while (*StringPtr != L'\0' && StrnCmp (StringPtr, L"&PATH=", StrLen (L"&PATH=")) != 0) {\r
     StringPtr++;\r
   }\r
+\r
   if (*StringPtr == L'\0') {\r
     return ConfigRequest;\r
   }\r
+\r
   StringPtr += StrLen (L"&PATH=");\r
   while (*StringPtr != L'\0' && *StringPtr != L'&') {\r
-    StringPtr ++;\r
+    StringPtr++;\r
   }\r
 \r
   if (*StringPtr == L'\0') {\r
@@ -4596,12 +4775,12 @@ ConfigRequestValidate (
     //\r
     // Should be Buffer varstore, config request should be "OFFSET/Width" pairs.\r
     //\r
-    return OffsetWidthValidate(StringPtr);\r
+    return OffsetWidthValidate (StringPtr);\r
   } else {\r
     //\r
     // Should be Name/Value varstore, config request should be "&name1&name2..." pairs.\r
     //\r
-    return NameValueValidate(StringPtr);\r
+    return NameValueValidate (StringPtr);\r
   }\r
 }\r
 \r
@@ -4655,36 +4834,36 @@ HiiConfigRoutingExtractConfig (
   OUT EFI_STRING                             *Results\r
   )\r
 {\r
-  HII_DATABASE_PRIVATE_DATA           *Private;\r
-  EFI_STRING                          StringPtr;\r
-  EFI_STRING                          ConfigRequest;\r
-  UINTN                               Length;\r
-  EFI_DEVICE_PATH_PROTOCOL            *DevicePath;\r
-  EFI_DEVICE_PATH_PROTOCOL            *TempDevicePath;\r
-  EFI_STATUS                          Status;\r
-  LIST_ENTRY                          *Link;\r
-  HII_DATABASE_RECORD                 *Database;\r
-  UINT8                               *DevicePathPkg;\r
-  UINT8                               *CurrentDevicePath;\r
-  EFI_HANDLE                          DriverHandle;\r
-  EFI_HII_HANDLE                      HiiHandle;\r
-  EFI_HII_CONFIG_ACCESS_PROTOCOL      *ConfigAccess;\r
-  EFI_STRING                          AccessProgress;\r
-  EFI_STRING                          AccessResults;\r
-  EFI_STRING                          AccessProgressBackup;\r
-  EFI_STRING                          AccessResultsBackup;\r
-  EFI_STRING                          DefaultResults;\r
-  BOOLEAN                             FirstElement;\r
-  BOOLEAN                             IfrDataParsedFlag;\r
-  BOOLEAN                             IsEfiVarStore;\r
-  EFI_IFR_VARSTORE_EFI                *EfiVarStoreInfo;\r
-  EFI_STRING                          ErrorPtr;\r
-  UINTN                               DevicePathSize;\r
-  UINTN                               ConigStringSize;\r
-  UINTN                               ConigStringSizeNewsize;\r
-  EFI_STRING                          ConfigStringPtr;\r
-\r
-  if (This == NULL || Progress == NULL || Results == NULL) {\r
+  HII_DATABASE_PRIVATE_DATA       *Private;\r
+  EFI_STRING                      StringPtr;\r
+  EFI_STRING                      ConfigRequest;\r
+  UINTN                           Length;\r
+  EFI_DEVICE_PATH_PROTOCOL        *DevicePath;\r
+  EFI_DEVICE_PATH_PROTOCOL        *TempDevicePath;\r
+  EFI_STATUS                      Status;\r
+  LIST_ENTRY                      *Link;\r
+  HII_DATABASE_RECORD             *Database;\r
+  UINT8                           *DevicePathPkg;\r
+  UINT8                           *CurrentDevicePath;\r
+  EFI_HANDLE                      DriverHandle;\r
+  EFI_HII_HANDLE                  HiiHandle;\r
+  EFI_HII_CONFIG_ACCESS_PROTOCOL  *ConfigAccess;\r
+  EFI_STRING                      AccessProgress;\r
+  EFI_STRING                      AccessResults;\r
+  EFI_STRING                      AccessProgressBackup;\r
+  EFI_STRING                      AccessResultsBackup;\r
+  EFI_STRING                      DefaultResults;\r
+  BOOLEAN                         FirstElement;\r
+  BOOLEAN                         IfrDataParsedFlag;\r
+  BOOLEAN                         IsEfiVarStore;\r
+  EFI_IFR_VARSTORE_EFI            *EfiVarStoreInfo;\r
+  EFI_STRING                      ErrorPtr;\r
+  UINTN                           DevicePathSize;\r
+  UINTN                           ConigStringSize;\r
+  UINTN                           ConigStringSizeNewsize;\r
+  EFI_STRING                      ConfigStringPtr;\r
+\r
+  if ((This == NULL) || (Progress == NULL) || (Results == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
@@ -4693,20 +4872,20 @@ HiiConfigRoutingExtractConfig (
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
-  Private   = CONFIG_ROUTING_DATABASE_PRIVATE_DATA_FROM_THIS (This);\r
-  StringPtr = Request;\r
-  *Progress = StringPtr;\r
-  DefaultResults = NULL;\r
-  ConfigRequest  = NULL;\r
-  Status         = EFI_SUCCESS;\r
-  AccessResults  = NULL;\r
-  AccessProgress = NULL;\r
+  Private              = CONFIG_ROUTING_DATABASE_PRIVATE_DATA_FROM_THIS (This);\r
+  StringPtr            = Request;\r
+  *Progress            = StringPtr;\r
+  DefaultResults       = NULL;\r
+  ConfigRequest        = NULL;\r
+  Status               = EFI_SUCCESS;\r
+  AccessResults        = NULL;\r
+  AccessProgress       = NULL;\r
   AccessResultsBackup  = NULL;\r
   AccessProgressBackup = NULL;\r
-  DevicePath     = NULL;\r
-  IfrDataParsedFlag = FALSE;\r
-  IsEfiVarStore     = FALSE;\r
-  EfiVarStoreInfo   = NULL;\r
+  DevicePath           = NULL;\r
+  IfrDataParsedFlag    = FALSE;\r
+  IsEfiVarStore        = FALSE;\r
+  EfiVarStoreInfo      = NULL;\r
 \r
   //\r
   // The first element of <MultiConfigRequest> should be\r
@@ -4722,7 +4901,7 @@ HiiConfigRoutingExtractConfig (
   // Allocate a fix length of memory to store Results. Reallocate memory for\r
   // Results if this fix length is insufficient.\r
   //\r
-  *Results = (EFI_STRING) AllocateZeroPool (MAX_STRING_LENGTH);\r
+  *Results = (EFI_STRING)AllocateZeroPool (MAX_STRING_LENGTH);\r
   if (*Results == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
@@ -4741,18 +4920,19 @@ HiiConfigRoutingExtractConfig (
     //\r
     // Process each <ConfigRequest> of <MultiConfigRequest>\r
     //\r
-    Length = CalculateConfigStringLen (StringPtr);\r
+    Length        = CalculateConfigStringLen (StringPtr);\r
     ConfigRequest = AllocateCopyPool ((Length + 1) * sizeof (CHAR16), StringPtr);\r
     if (ConfigRequest == NULL) {\r
       Status = EFI_OUT_OF_RESOURCES;\r
       goto Done;\r
     }\r
+\r
     *(ConfigRequest + Length) = 0;\r
 \r
     //\r
     // Get the UEFI device path\r
     //\r
-    Status = GetDevicePath (ConfigRequest, (UINT8 **) &DevicePath);\r
+    Status = GetDevicePath (ConfigRequest, (UINT8 **)&DevicePath);\r
     if (EFI_ERROR (Status)) {\r
       goto Done;\r
     }\r
@@ -4760,18 +4940,19 @@ HiiConfigRoutingExtractConfig (
     //\r
     // Find driver which matches the routing data.\r
     //\r
-    DriverHandle     = NULL;\r
-    HiiHandle        = NULL;\r
-    Database         = NULL;\r
+    DriverHandle = NULL;\r
+    HiiHandle    = NULL;\r
+    Database     = NULL;\r
     for (Link = Private->DatabaseList.ForwardLink;\r
          Link != &Private->DatabaseList;\r
          Link = Link->ForwardLink\r
-        ) {\r
+         )\r
+    {\r
       Database = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);\r
       if ((DevicePathPkg = Database->PackageList->DevicePathPkg) != NULL) {\r
         CurrentDevicePath = DevicePathPkg + sizeof (EFI_HII_PACKAGE_HEADER);\r
-        DevicePathSize    = GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) CurrentDevicePath);\r
-        if ((CompareMem (DevicePath,CurrentDevicePath,DevicePathSize) == 0) && IsThisPackageList(Database, ConfigRequest)) {\r
+        DevicePathSize    = GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *)CurrentDevicePath);\r
+        if ((CompareMem (DevicePath, CurrentDevicePath, DevicePathSize) == 0) && IsThisPackageList (Database, ConfigRequest)) {\r
           DriverHandle = Database->DriverHandle;\r
           HiiHandle    = Database->Handle;\r
           break;\r
@@ -4784,18 +4965,18 @@ HiiConfigRoutingExtractConfig (
     //\r
     if (DriverHandle == NULL) {\r
       TempDevicePath = DevicePath;\r
-      Status = gBS->LocateDevicePath (\r
-                      &gEfiDevicePathProtocolGuid,\r
-                      &TempDevicePath,\r
-                      &DriverHandle\r
-                      );\r
+      Status         = gBS->LocateDevicePath (\r
+                              &gEfiDevicePathProtocolGuid,\r
+                              &TempDevicePath,\r
+                              &DriverHandle\r
+                              );\r
       if (EFI_ERROR (Status) || (DriverHandle == NULL)) {\r
         //\r
         // Routing data does not match any known driver.\r
         // Set Progress to the 'G' in "GUID" of the routing header.\r
         //\r
         *Progress = StringPtr;\r
-        Status = EFI_NOT_FOUND;\r
+        Status    = EFI_NOT_FOUND;\r
         goto Done;\r
       }\r
     }\r
@@ -4803,10 +4984,10 @@ HiiConfigRoutingExtractConfig (
     //\r
     // Validate ConfigRequest String.\r
     //\r
-    ErrorPtr = ConfigRequestValidate(ConfigRequest);\r
+    ErrorPtr = ConfigRequestValidate (ConfigRequest);\r
     if (ErrorPtr != NULL) {\r
       *Progress = StrStr (StringPtr, ErrorPtr);\r
-      Status = EFI_INVALID_PARAMETER;\r
+      Status    = EFI_INVALID_PARAMETER;\r
       goto Done;\r
     }\r
 \r
@@ -4814,12 +4995,12 @@ HiiConfigRoutingExtractConfig (
     // Check whether ConfigRequest contains request string.\r
     //\r
     IfrDataParsedFlag = FALSE;\r
-    if ((HiiHandle != NULL) && !GetElementsFromRequest(ConfigRequest)) {\r
+    if ((HiiHandle != NULL) && !GetElementsFromRequest (ConfigRequest)) {\r
       //\r
       // Get the full request string from IFR when HiiPackage is registered to HiiHandle\r
       //\r
       IfrDataParsedFlag = TRUE;\r
-      Status = GetFullStringFromHiiFormPackages (Database, DevicePath, &ConfigRequest, &DefaultResults, &AccessProgress);\r
+      Status            = GetFullStringFromHiiFormPackages (Database, DevicePath, &ConfigRequest, &DefaultResults, &AccessProgress);\r
       if (EFI_ERROR (Status)) {\r
         //\r
         // AccessProgress indicates the parsing progress on <ConfigRequest>.\r
@@ -4829,10 +5010,11 @@ HiiConfigRoutingExtractConfig (
         *Progress = StrStr (StringPtr, AccessProgress);\r
         goto Done;\r
       }\r
+\r
       //\r
       // Not any request block is found.\r
       //\r
-      if (!GetElementsFromRequest(ConfigRequest)) {\r
+      if (!GetElementsFromRequest (ConfigRequest)) {\r
         AccessResults = AllocateCopyPool (StrSize (ConfigRequest), ConfigRequest);\r
         goto NextConfigString;\r
       }\r
@@ -4841,7 +5023,7 @@ HiiConfigRoutingExtractConfig (
     //\r
     // Check whether this ConfigRequest is search from Efi varstore type storage.\r
     //\r
-    Status = GetVarStoreType(Database, ConfigRequest, &IsEfiVarStore, &EfiVarStoreInfo);\r
+    Status = GetVarStoreType (Database, ConfigRequest, &IsEfiVarStore, &EfiVarStoreInfo);\r
     if (EFI_ERROR (Status)) {\r
       goto Done;\r
     }\r
@@ -4850,7 +5032,7 @@ HiiConfigRoutingExtractConfig (
       //\r
       // Call the GetVariable function to extract settings.\r
       //\r
-      Status = GetConfigRespFromEfiVarStore(This, EfiVarStoreInfo, ConfigRequest, &AccessResults, &AccessProgress);\r
+      Status = GetConfigRespFromEfiVarStore (This, EfiVarStoreInfo, ConfigRequest, &AccessResults, &AccessProgress);\r
       FreePool (EfiVarStoreInfo);\r
       if (EFI_ERROR (Status)) {\r
         //\r
@@ -4867,7 +5049,7 @@ HiiConfigRoutingExtractConfig (
       Status = gBS->HandleProtocol (\r
                       DriverHandle,\r
                       &gEfiHiiConfigAccessProtocolGuid,\r
-                      (VOID **) &ConfigAccess\r
+                      (VOID **)&ConfigAccess\r
                       );\r
       if (EFI_ERROR (Status)) {\r
         //\r
@@ -4882,18 +5064,19 @@ HiiConfigRoutingExtractConfig (
                                  &AccessProgressBackup,\r
                                  &AccessResultsBackup\r
                                  );\r
-        if (!EFI_ERROR(Status)) {\r
+        if (!EFI_ERROR (Status)) {\r
           //\r
-          //Merge the AltCfgResp in AccessResultsBackup to AccessResults\r
+          // Merge the AltCfgResp in AccessResultsBackup to AccessResults\r
           //\r
           if ((AccessResultsBackup != NULL) && (StrStr (AccessResultsBackup, L"&ALTCFG=") != NULL)) {\r
-            ConigStringSize = StrSize (AccessResults);\r
-            ConfigStringPtr = StrStr (AccessResultsBackup, L"&GUID=");\r
+            ConigStringSize        = StrSize (AccessResults);\r
+            ConfigStringPtr        = StrStr (AccessResultsBackup, L"&GUID=");\r
             ConigStringSizeNewsize = StrSize (ConfigStringPtr) + ConigStringSize + sizeof (CHAR16);\r
-            AccessResults = (EFI_STRING) ReallocatePool (\r
-                                         ConigStringSize,\r
-                                         ConigStringSizeNewsize,\r
-                                         AccessResults);\r
+            AccessResults          = (EFI_STRING)ReallocatePool (\r
+                                                   ConigStringSize,\r
+                                                   ConigStringSizeNewsize,\r
+                                                   AccessResults\r
+                                                   );\r
             StrCatS (AccessResults, ConigStringSizeNewsize / sizeof (CHAR16), ConfigStringPtr);\r
           }\r
         } else {\r
@@ -4903,6 +5086,7 @@ HiiConfigRoutingExtractConfig (
           //\r
           Status = EFI_SUCCESS;\r
         }\r
+\r
         if (AccessResultsBackup != NULL) {\r
           FreePool (AccessResultsBackup);\r
           AccessResultsBackup = NULL;\r
@@ -4915,7 +5099,7 @@ HiiConfigRoutingExtractConfig (
       Status = gBS->HandleProtocol (\r
                       DriverHandle,\r
                       &gEfiHiiConfigAccessProtocolGuid,\r
-                      (VOID **) &ConfigAccess\r
+                      (VOID **)&ConfigAccess\r
                       );\r
       if (EFI_ERROR (Status)) {\r
         goto Done;\r
@@ -4928,6 +5112,7 @@ HiiConfigRoutingExtractConfig (
                                &AccessResults\r
                                );\r
     }\r
+\r
     if (EFI_ERROR (Status)) {\r
       //\r
       // AccessProgress indicates the parsing progress on <ConfigRequest>.\r
@@ -4946,7 +5131,7 @@ HiiConfigRoutingExtractConfig (
     //\r
     // Update AccessResults by getting default setting from IFR when HiiPackage is registered to HiiHandle\r
     //\r
-    if (!IfrDataParsedFlag && HiiHandle != NULL) {\r
+    if (!IfrDataParsedFlag && (HiiHandle != NULL)) {\r
       Status = GetFullStringFromHiiFormPackages (Database, DevicePath, &ConfigRequest, &DefaultResults, NULL);\r
       ASSERT_EFI_ERROR (Status);\r
     }\r
@@ -5014,7 +5199,6 @@ Done:
   return Status;\r
 }\r
 \r
-\r
 /**\r
   This function allows the caller to request the current configuration for the\r
   entirety of the current HII database and returns the data in a\r
@@ -5044,27 +5228,27 @@ HiiConfigRoutingExportConfig (
   OUT EFI_STRING                             *Results\r
   )\r
 {\r
-  EFI_STATUS                          Status;\r
-  EFI_HII_CONFIG_ACCESS_PROTOCOL      *ConfigAccess;\r
-  EFI_STRING                          AccessResults;\r
-  EFI_STRING                          Progress;\r
-  EFI_STRING                          StringPtr;\r
-  EFI_STRING                          ConfigRequest;\r
-  UINTN                               Index;\r
-  EFI_HANDLE                          *ConfigAccessHandles;\r
-  UINTN                               NumberConfigAccessHandles;\r
-  BOOLEAN                             FirstElement;\r
-  EFI_DEVICE_PATH_PROTOCOL            *DevicePath;\r
-  EFI_HII_HANDLE                      HiiHandle;\r
-  EFI_STRING                          DefaultResults;\r
-  HII_DATABASE_PRIVATE_DATA           *Private;\r
-  LIST_ENTRY                          *Link;\r
-  HII_DATABASE_RECORD                 *Database;\r
-  UINT8                               *DevicePathPkg;\r
-  UINT8                               *CurrentDevicePath;\r
-  BOOLEAN                             IfrDataParsedFlag;\r
-\r
-  if (This == NULL || Results == NULL) {\r
+  EFI_STATUS                      Status;\r
+  EFI_HII_CONFIG_ACCESS_PROTOCOL  *ConfigAccess;\r
+  EFI_STRING                      AccessResults;\r
+  EFI_STRING                      Progress;\r
+  EFI_STRING                      StringPtr;\r
+  EFI_STRING                      ConfigRequest;\r
+  UINTN                           Index;\r
+  EFI_HANDLE                      *ConfigAccessHandles;\r
+  UINTN                           NumberConfigAccessHandles;\r
+  BOOLEAN                         FirstElement;\r
+  EFI_DEVICE_PATH_PROTOCOL        *DevicePath;\r
+  EFI_HII_HANDLE                  HiiHandle;\r
+  EFI_STRING                      DefaultResults;\r
+  HII_DATABASE_PRIVATE_DATA       *Private;\r
+  LIST_ENTRY                      *Link;\r
+  HII_DATABASE_RECORD             *Database;\r
+  UINT8                           *DevicePathPkg;\r
+  UINT8                           *CurrentDevicePath;\r
+  BOOLEAN                         IfrDataParsedFlag;\r
+\r
+  if ((This == NULL) || (Results == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
@@ -5074,19 +5258,19 @@ HiiConfigRoutingExportConfig (
   // Allocate a fix length of memory to store Results. Reallocate memory for\r
   // Results if this fix length is insufficient.\r
   //\r
-  *Results = (EFI_STRING) AllocateZeroPool (MAX_STRING_LENGTH);\r
+  *Results = (EFI_STRING)AllocateZeroPool (MAX_STRING_LENGTH);\r
   if (*Results == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
 \r
   NumberConfigAccessHandles = 0;\r
-  Status = gBS->LocateHandleBuffer (\r
-             ByProtocol,\r
-             &gEfiHiiConfigAccessProtocolGuid,\r
-             NULL,\r
-             &NumberConfigAccessHandles,\r
-             &ConfigAccessHandles\r
-             );\r
+  Status                    = gBS->LocateHandleBuffer (\r
+                                     ByProtocol,\r
+                                     &gEfiHiiConfigAccessProtocolGuid,\r
+                                     NULL,\r
+                                     &NumberConfigAccessHandles,\r
+                                     &ConfigAccessHandles\r
+                                     );\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
@@ -5097,7 +5281,7 @@ HiiConfigRoutingExportConfig (
     Status = gBS->HandleProtocol (\r
                     ConfigAccessHandles[Index],\r
                     &gEfiHiiConfigAccessProtocolGuid,\r
-                    (VOID **) &ConfigAccess\r
+                    (VOID **)&ConfigAccess\r
                     );\r
     if (EFI_ERROR (Status)) {\r
       continue;\r
@@ -5107,25 +5291,27 @@ HiiConfigRoutingExportConfig (
     // Get DevicePath and HiiHandle for this ConfigAccess driver handle\r
     //\r
     IfrDataParsedFlag = FALSE;\r
-    Progress         = NULL;\r
-    HiiHandle        = NULL;\r
-    DefaultResults   = NULL;\r
-    Database         = NULL;\r
-    ConfigRequest    = NULL;\r
-    DevicePath       = DevicePathFromHandle (ConfigAccessHandles[Index]);\r
+    Progress          = NULL;\r
+    HiiHandle         = NULL;\r
+    DefaultResults    = NULL;\r
+    Database          = NULL;\r
+    ConfigRequest     = NULL;\r
+    DevicePath        = DevicePathFromHandle (ConfigAccessHandles[Index]);\r
     if (DevicePath != NULL) {\r
       for (Link = Private->DatabaseList.ForwardLink;\r
            Link != &Private->DatabaseList;\r
            Link = Link->ForwardLink\r
-          ) {\r
+           )\r
+      {\r
         Database = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);\r
         if ((DevicePathPkg = Database->PackageList->DevicePathPkg) != NULL) {\r
           CurrentDevicePath = DevicePathPkg + sizeof (EFI_HII_PACKAGE_HEADER);\r
           if (CompareMem (\r
                 DevicePath,\r
                 CurrentDevicePath,\r
-                GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) CurrentDevicePath)\r
-                ) == 0) {\r
+                GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *)CurrentDevicePath)\r
+                ) == 0)\r
+          {\r
             HiiHandle = Database->Handle;\r
             break;\r
           }\r
@@ -5143,13 +5329,13 @@ HiiConfigRoutingExportConfig (
       //\r
       // Update AccessResults by getting default setting from IFR when HiiPackage is registered to HiiHandle\r
       //\r
-      if (HiiHandle != NULL && DevicePath != NULL) {\r
+      if ((HiiHandle != NULL) && (DevicePath != NULL)) {\r
         IfrDataParsedFlag = TRUE;\r
-        Status = GetFullStringFromHiiFormPackages (Database, DevicePath, &ConfigRequest, &DefaultResults, NULL);\r
+        Status            = GetFullStringFromHiiFormPackages (Database, DevicePath, &ConfigRequest, &DefaultResults, NULL);\r
         //\r
         // Get the full request string to get the Current setting again.\r
         //\r
-        if (!EFI_ERROR (Status) && ConfigRequest != NULL) {\r
+        if (!EFI_ERROR (Status) && (ConfigRequest != NULL)) {\r
           Status = ConfigAccess->ExtractConfig (\r
                                    ConfigAccess,\r
                                    ConfigRequest,\r
@@ -5167,19 +5353,22 @@ HiiConfigRoutingExportConfig (
       //\r
       // Update AccessResults by getting default setting from IFR when HiiPackage is registered to HiiHandle\r
       //\r
-      if (!IfrDataParsedFlag && HiiHandle != NULL && DevicePath != NULL) {\r
+      if (!IfrDataParsedFlag && (HiiHandle != NULL) && (DevicePath != NULL)) {\r
         StringPtr = StrStr (AccessResults, L"&GUID=");\r
         if (StringPtr != NULL) {\r
           *StringPtr = 0;\r
         }\r
+\r
         if (GetElementsFromRequest (AccessResults)) {\r
           Status = GetFullStringFromHiiFormPackages (Database, DevicePath, &AccessResults, &DefaultResults, NULL);\r
           ASSERT_EFI_ERROR (Status);\r
         }\r
+\r
         if (StringPtr != NULL) {\r
           *StringPtr = L'&';\r
         }\r
       }\r
+\r
       //\r
       // Merge the default sting from IFR code into the got setting from driver.\r
       //\r
@@ -5208,12 +5397,12 @@ HiiConfigRoutingExportConfig (
       AccessResults = NULL;\r
     }\r
   }\r
+\r
   FreePool (ConfigAccessHandles);\r
 \r
   return EFI_SUCCESS;\r
 }\r
 \r
-\r
 /**\r
   This function processes the results of processing forms and routes it to the\r
   appropriate handlers or storage.\r
@@ -5247,25 +5436,25 @@ HiiConfigRoutingRouteConfig (
   OUT EFI_STRING                             *Progress\r
   )\r
 {\r
-  HII_DATABASE_PRIVATE_DATA           *Private;\r
-  EFI_STRING                          StringPtr;\r
-  EFI_STRING                          ConfigResp;\r
-  UINTN                               Length;\r
-  EFI_STATUS                          Status;\r
-  EFI_DEVICE_PATH_PROTOCOL            *DevicePath;\r
-  EFI_DEVICE_PATH_PROTOCOL            *TempDevicePath;\r
-  LIST_ENTRY                          *Link;\r
-  HII_DATABASE_RECORD                 *Database;\r
-  UINT8                               *DevicePathPkg;\r
-  UINT8                               *CurrentDevicePath;\r
-  EFI_HANDLE                          DriverHandle;\r
-  EFI_HII_CONFIG_ACCESS_PROTOCOL      *ConfigAccess;\r
-  EFI_STRING                          AccessProgress;\r
-  EFI_IFR_VARSTORE_EFI                *EfiVarStoreInfo;\r
-  BOOLEAN                             IsEfiVarstore;\r
-  UINTN                               DevicePathSize;\r
-\r
-  if (This == NULL || Progress == NULL) {\r
+  HII_DATABASE_PRIVATE_DATA       *Private;\r
+  EFI_STRING                      StringPtr;\r
+  EFI_STRING                      ConfigResp;\r
+  UINTN                           Length;\r
+  EFI_STATUS                      Status;\r
+  EFI_DEVICE_PATH_PROTOCOL        *DevicePath;\r
+  EFI_DEVICE_PATH_PROTOCOL        *TempDevicePath;\r
+  LIST_ENTRY                      *Link;\r
+  HII_DATABASE_RECORD             *Database;\r
+  UINT8                           *DevicePathPkg;\r
+  UINT8                           *CurrentDevicePath;\r
+  EFI_HANDLE                      DriverHandle;\r
+  EFI_HII_CONFIG_ACCESS_PROTOCOL  *ConfigAccess;\r
+  EFI_STRING                      AccessProgress;\r
+  EFI_IFR_VARSTORE_EFI            *EfiVarStoreInfo;\r
+  BOOLEAN                         IsEfiVarstore;\r
+  UINTN                           DevicePathSize;\r
+\r
+  if ((This == NULL) || (Progress == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
@@ -5274,13 +5463,13 @@ HiiConfigRoutingRouteConfig (
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
-  Private   = CONFIG_ROUTING_DATABASE_PRIVATE_DATA_FROM_THIS (This);\r
-  StringPtr = Configuration;\r
-  *Progress = StringPtr;\r
-  Database       = NULL;\r
-  AccessProgress = NULL;\r
-  EfiVarStoreInfo= NULL;\r
-  IsEfiVarstore  = FALSE;\r
+  Private         = CONFIG_ROUTING_DATABASE_PRIVATE_DATA_FROM_THIS (This);\r
+  StringPtr       = Configuration;\r
+  *Progress       = StringPtr;\r
+  Database        = NULL;\r
+  AccessProgress  = NULL;\r
+  EfiVarStoreInfo = NULL;\r
+  IsEfiVarstore   = FALSE;\r
 \r
   //\r
   // The first element of <MultiConfigResp> should be\r
@@ -5304,11 +5493,12 @@ HiiConfigRoutingRouteConfig (
     //\r
     // Process each <ConfigResp> of <MultiConfigResp>\r
     //\r
-    Length = CalculateConfigStringLen (StringPtr);\r
+    Length     = CalculateConfigStringLen (StringPtr);\r
     ConfigResp = AllocateCopyPool ((Length + 1) * sizeof (CHAR16), StringPtr);\r
     if (ConfigResp == NULL) {\r
       return EFI_OUT_OF_RESOURCES;\r
     }\r
+\r
     //\r
     // Append '\0' to the end of ConfigRequest\r
     //\r
@@ -5317,7 +5507,7 @@ HiiConfigRoutingRouteConfig (
     //\r
     // Get the UEFI device path\r
     //\r
-    Status = GetDevicePath (ConfigResp, (UINT8 **) &DevicePath);\r
+    Status = GetDevicePath (ConfigResp, (UINT8 **)&DevicePath);\r
     if (EFI_ERROR (Status)) {\r
       FreePool (ConfigResp);\r
       return Status;\r
@@ -5326,17 +5516,18 @@ HiiConfigRoutingRouteConfig (
     //\r
     // Find driver which matches the routing data.\r
     //\r
-    DriverHandle     = NULL;\r
+    DriverHandle = NULL;\r
     for (Link = Private->DatabaseList.ForwardLink;\r
          Link != &Private->DatabaseList;\r
          Link = Link->ForwardLink\r
-        ) {\r
+         )\r
+    {\r
       Database = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);\r
 \r
       if ((DevicePathPkg = Database->PackageList->DevicePathPkg) != NULL) {\r
         CurrentDevicePath = DevicePathPkg + sizeof (EFI_HII_PACKAGE_HEADER);\r
-        DevicePathSize    = GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) CurrentDevicePath);\r
-        if ((CompareMem (DevicePath,CurrentDevicePath,DevicePathSize) == 0) && IsThisPackageList(Database, ConfigResp)) {\r
+        DevicePathSize    = GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *)CurrentDevicePath);\r
+        if ((CompareMem (DevicePath, CurrentDevicePath, DevicePathSize) == 0) && IsThisPackageList (Database, ConfigResp)) {\r
           DriverHandle = Database->DriverHandle;\r
           break;\r
         }\r
@@ -5348,11 +5539,11 @@ HiiConfigRoutingRouteConfig (
     //\r
     if (DriverHandle == NULL) {\r
       TempDevicePath = DevicePath;\r
-      Status = gBS->LocateDevicePath (\r
-                      &gEfiDevicePathProtocolGuid,\r
-                      &TempDevicePath,\r
-                      &DriverHandle\r
-                      );\r
+      Status         = gBS->LocateDevicePath (\r
+                              &gEfiDevicePathProtocolGuid,\r
+                              &TempDevicePath,\r
+                              &DriverHandle\r
+                              );\r
       if (EFI_ERROR (Status) || (DriverHandle == NULL)) {\r
         //\r
         // Routing data does not match any known driver.\r
@@ -5370,7 +5561,7 @@ HiiConfigRoutingRouteConfig (
     //\r
     // Check whether this ConfigRequest is search from Efi varstore type storage.\r
     //\r
-    Status = GetVarStoreType(Database, ConfigResp, &IsEfiVarstore, &EfiVarStoreInfo);\r
+    Status = GetVarStoreType (Database, ConfigResp, &IsEfiVarstore, &EfiVarStoreInfo);\r
     if (EFI_ERROR (Status)) {\r
       return Status;\r
     }\r
@@ -5379,7 +5570,7 @@ HiiConfigRoutingRouteConfig (
       //\r
       // Call the SetVariable function to route settings.\r
       //\r
-      Status = RouteConfigRespForEfiVarStore(This, EfiVarStoreInfo, ConfigResp, &AccessProgress);\r
+      Status = RouteConfigRespForEfiVarStore (This, EfiVarStoreInfo, ConfigResp, &AccessProgress);\r
       FreePool (EfiVarStoreInfo);\r
     } else {\r
       //\r
@@ -5388,7 +5579,7 @@ HiiConfigRoutingRouteConfig (
       Status = gBS->HandleProtocol (\r
                       DriverHandle,\r
                       &gEfiHiiConfigAccessProtocolGuid,\r
-                      (VOID **)  &ConfigAccess\r
+                      (VOID **)&ConfigAccess\r
                       );\r
       if (EFI_ERROR (Status)) {\r
         *Progress = StringPtr;\r
@@ -5402,6 +5593,7 @@ HiiConfigRoutingRouteConfig (
                                &AccessProgress\r
                                );\r
     }\r
+\r
     if (EFI_ERROR (Status)) {\r
       ASSERT (AccessProgress != NULL);\r
       //\r
@@ -5427,13 +5619,11 @@ HiiConfigRoutingRouteConfig (
     }\r
 \r
     StringPtr++;\r
-\r
   }\r
 \r
   return EFI_SUCCESS;\r
 }\r
 \r
-\r
 /**\r
   This helper function is to be called by drivers to map configuration data\r
   stored in byte array ("block") formats such as UEFI Variables into current\r
@@ -5480,33 +5670,32 @@ HiiBlockToConfig (
   OUT EFI_STRING                             *Progress\r
   )\r
 {\r
-  HII_DATABASE_PRIVATE_DATA           *Private;\r
-  EFI_STRING                          StringPtr;\r
-  UINTN                               Length;\r
-  EFI_STATUS                          Status;\r
-  EFI_STRING                          TmpPtr;\r
-  UINT8                               *TmpBuffer;\r
-  UINTN                               Offset;\r
-  UINTN                               Width;\r
-  UINT8                               *Value;\r
-  EFI_STRING                          ValueStr;\r
-  EFI_STRING                          ConfigElement;\r
-  UINTN                               Index;\r
-  UINT8                               *TemBuffer;\r
-  CHAR16                              *TemString;\r
+  HII_DATABASE_PRIVATE_DATA  *Private;\r
+  EFI_STRING                 StringPtr;\r
+  UINTN                      Length;\r
+  EFI_STATUS                 Status;\r
+  EFI_STRING                 TmpPtr;\r
+  UINT8                      *TmpBuffer;\r
+  UINTN                      Offset;\r
+  UINTN                      Width;\r
+  UINT8                      *Value;\r
+  EFI_STRING                 ValueStr;\r
+  EFI_STRING                 ConfigElement;\r
+  UINTN                      Index;\r
+  UINT8                      *TemBuffer;\r
+  CHAR16                     *TemString;\r
 \r
   TmpBuffer = NULL;\r
 \r
-  if (This == NULL || Progress == NULL || Config == NULL) {\r
+  if ((This == NULL) || (Progress == NULL) || (Config == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
-  if (Block == NULL || ConfigRequest == NULL) {\r
+  if ((Block == NULL) || (ConfigRequest == NULL)) {\r
     *Progress = ConfigRequest;\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
-\r
   Private = CONFIG_ROUTING_DATABASE_PRIVATE_DATA_FROM_THIS (This);\r
   ASSERT (Private != NULL);\r
 \r
@@ -5519,7 +5708,7 @@ HiiBlockToConfig (
   // Allocate a fix length of memory to store Results. Reallocate memory for\r
   // Results if this fix length is insufficient.\r
   //\r
-  *Config = (EFI_STRING) AllocateZeroPool (MAX_STRING_LENGTH);\r
+  *Config = (EFI_STRING)AllocateZeroPool (MAX_STRING_LENGTH);\r
   if (*Config == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
@@ -5529,29 +5718,33 @@ HiiBlockToConfig (
   //\r
   if (StrnCmp (StringPtr, L"GUID=", StrLen (L"GUID=")) != 0) {\r
     *Progress = StringPtr;\r
-    Status = EFI_INVALID_PARAMETER;\r
+    Status    = EFI_INVALID_PARAMETER;\r
     goto Exit;\r
   }\r
+\r
   while (*StringPtr != 0 && StrnCmp (StringPtr, L"PATH=", StrLen (L"PATH=")) != 0) {\r
     StringPtr++;\r
   }\r
+\r
   if (*StringPtr == 0) {\r
     *Progress = StringPtr - 1;\r
-    Status = EFI_INVALID_PARAMETER;\r
+    Status    = EFI_INVALID_PARAMETER;\r
     goto Exit;\r
   }\r
 \r
   while (*StringPtr != L'&' && *StringPtr != 0) {\r
     StringPtr++;\r
   }\r
+\r
   if (*StringPtr == 0) {\r
     *Progress = StringPtr;\r
 \r
-    AppendToMultiString(Config, ConfigRequest);\r
+    AppendToMultiString (Config, ConfigRequest);\r
     HiiToLower (*Config);\r
 \r
     return EFI_SUCCESS;\r
   }\r
+\r
   //\r
   // Skip '&'\r
   //\r
@@ -5564,8 +5757,9 @@ HiiBlockToConfig (
   if (TemString == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
+\r
   TemString[StringPtr - ConfigRequest] = '\0';\r
-  AppendToMultiString(Config, TemString);\r
+  AppendToMultiString (Config, TemString);\r
   FreePool (TemString);\r
 \r
   //\r
@@ -5588,6 +5782,7 @@ HiiBlockToConfig (
       *Progress = TmpPtr - 1;\r
       goto Exit;\r
     }\r
+\r
     Offset = 0;\r
     CopyMem (\r
       &Offset,\r
@@ -5599,9 +5794,10 @@ HiiBlockToConfig (
     StringPtr += Length;\r
     if (StrnCmp (StringPtr, L"&WIDTH=", StrLen (L"&WIDTH=")) != 0) {\r
       *Progress = TmpPtr - 1;\r
-      Status = EFI_INVALID_PARAMETER;\r
+      Status    = EFI_INVALID_PARAMETER;\r
       goto Exit;\r
     }\r
+\r
     StringPtr += StrLen (L"&WIDTH=");\r
 \r
     //\r
@@ -5612,6 +5808,7 @@ HiiBlockToConfig (
       *Progress =  TmpPtr - 1;\r
       goto Exit;\r
     }\r
+\r
     Width = 0;\r
     CopyMem (\r
       &Width,\r
@@ -5621,9 +5818,9 @@ HiiBlockToConfig (
     FreePool (TmpBuffer);\r
 \r
     StringPtr += Length;\r
-    if (*StringPtr != 0 && *StringPtr != L'&') {\r
+    if ((*StringPtr != 0) && (*StringPtr != L'&')) {\r
       *Progress =  TmpPtr - 1;\r
-      Status = EFI_INVALID_PARAMETER;\r
+      Status    = EFI_INVALID_PARAMETER;\r
       goto Exit;\r
     }\r
 \r
@@ -5632,30 +5829,30 @@ HiiBlockToConfig (
     //\r
     if (Offset + Width > BlockSize) {\r
       *Progress = StringPtr;\r
-      Status = EFI_DEVICE_ERROR;\r
+      Status    = EFI_DEVICE_ERROR;\r
       goto Exit;\r
     }\r
 \r
-    Value = (UINT8 *) AllocateZeroPool (Width);\r
+    Value = (UINT8 *)AllocateZeroPool (Width);\r
     if (Value == NULL) {\r
       *Progress = ConfigRequest;\r
-      Status = EFI_OUT_OF_RESOURCES;\r
+      Status    = EFI_OUT_OF_RESOURCES;\r
       goto Exit;\r
     }\r
 \r
-    CopyMem (Value, (UINT8 *) Block + Offset, Width);\r
+    CopyMem (Value, (UINT8 *)Block + Offset, Width);\r
 \r
-    Length = Width * 2 + 1;\r
-    ValueStr = (EFI_STRING) AllocateZeroPool (Length  * sizeof (CHAR16));\r
+    Length   = Width * 2 + 1;\r
+    ValueStr = (EFI_STRING)AllocateZeroPool (Length  * sizeof (CHAR16));\r
     if (ValueStr == NULL) {\r
       *Progress = ConfigRequest;\r
-      Status = EFI_OUT_OF_RESOURCES;\r
+      Status    = EFI_OUT_OF_RESOURCES;\r
       goto Exit;\r
     }\r
 \r
     TemString = ValueStr;\r
     TemBuffer = Value + Width - 1;\r
-    for (Index = 0; Index < Width; Index ++, TemBuffer --) {\r
+    for (Index = 0; Index < Width; Index++, TemBuffer--) {\r
       UnicodeValueToStringS (\r
         TemString,\r
         Length  * sizeof (CHAR16) - ((UINTN)TemString - (UINTN)ValueStr),\r
@@ -5672,16 +5869,18 @@ HiiBlockToConfig (
     //\r
     // Build a ConfigElement\r
     //\r
-    Length += StringPtr - TmpPtr + 1 + StrLen (L"VALUE=");\r
-    ConfigElement = (EFI_STRING) AllocateZeroPool (Length * sizeof (CHAR16));\r
+    Length       += StringPtr - TmpPtr + 1 + StrLen (L"VALUE=");\r
+    ConfigElement = (EFI_STRING)AllocateZeroPool (Length * sizeof (CHAR16));\r
     if (ConfigElement == NULL) {\r
       Status = EFI_OUT_OF_RESOURCES;\r
       goto Exit;\r
     }\r
+\r
     CopyMem (ConfigElement, TmpPtr, (StringPtr - TmpPtr + 1) * sizeof (CHAR16));\r
     if (*StringPtr == 0) {\r
       *(ConfigElement + (StringPtr - TmpPtr)) = L'&';\r
     }\r
+\r
     *(ConfigElement + (StringPtr - TmpPtr) + 1) = 0;\r
     StrCatS (ConfigElement, Length, L"VALUE=");\r
     StrCatS (ConfigElement, Length, ValueStr);\r
@@ -5691,7 +5890,7 @@ HiiBlockToConfig (
     FreePool (ConfigElement);\r
     FreePool (ValueStr);\r
     ConfigElement = NULL;\r
-    ValueStr = NULL;\r
+    ValueStr      = NULL;\r
 \r
     //\r
     // If '\0', parsing is finished. Otherwise skip '&' to continue\r
@@ -5699,14 +5898,14 @@ HiiBlockToConfig (
     if (*StringPtr == 0) {\r
       break;\r
     }\r
+\r
     AppendToMultiString (Config, L"&");\r
     StringPtr++;\r
-\r
   }\r
 \r
   if (*StringPtr != 0) {\r
     *Progress = StringPtr - 1;\r
-    Status = EFI_INVALID_PARAMETER;\r
+    Status    = EFI_INVALID_PARAMETER;\r
     goto Exit;\r
   }\r
 \r
@@ -5716,24 +5915,25 @@ HiiBlockToConfig (
 \r
 Exit:\r
   if (*Config != NULL) {\r
-  FreePool (*Config);\r
-  *Config = NULL;\r
+    FreePool (*Config);\r
+    *Config = NULL;\r
   }\r
+\r
   if (ValueStr != NULL) {\r
     FreePool (ValueStr);\r
   }\r
+\r
   if (Value != NULL) {\r
     FreePool (Value);\r
   }\r
+\r
   if (ConfigElement != NULL) {\r
     FreePool (ConfigElement);\r
   }\r
 \r
   return Status;\r
-\r
 }\r
 \r
-\r
 /**\r
   This helper function is to be called by drivers to map configuration strings\r
   to configurations stored in byte array ("block") formats such as UEFI Variables.\r
@@ -5784,28 +5984,28 @@ Exit:
 EFI_STATUS\r
 EFIAPI\r
 HiiConfigToBlock (\r
-  IN     CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This,\r
-  IN     CONST EFI_STRING                      ConfigResp,\r
-  IN OUT UINT8                                 *Block,\r
-  IN OUT UINTN                                 *BlockSize,\r
-  OUT    EFI_STRING                            *Progress\r
+  IN     CONST EFI_HII_CONFIG_ROUTING_PROTOCOL  *This,\r
+  IN     CONST EFI_STRING                       ConfigResp,\r
+  IN OUT UINT8                                  *Block,\r
+  IN OUT UINTN                                  *BlockSize,\r
+  OUT    EFI_STRING                             *Progress\r
   )\r
 {\r
-  HII_DATABASE_PRIVATE_DATA           *Private;\r
-  EFI_STRING                          StringPtr;\r
-  EFI_STRING                          TmpPtr;\r
-  UINTN                               Length;\r
-  EFI_STATUS                          Status;\r
-  UINT8                               *TmpBuffer;\r
-  UINTN                               Offset;\r
-  UINTN                               Width;\r
-  UINT8                               *Value;\r
-  UINTN                               BufferSize;\r
-  UINTN                               MaxBlockSize;\r
+  HII_DATABASE_PRIVATE_DATA  *Private;\r
+  EFI_STRING                 StringPtr;\r
+  EFI_STRING                 TmpPtr;\r
+  UINTN                      Length;\r
+  EFI_STATUS                 Status;\r
+  UINT8                      *TmpBuffer;\r
+  UINTN                      Offset;\r
+  UINTN                      Width;\r
+  UINT8                      *Value;\r
+  UINTN                      BufferSize;\r
+  UINTN                      MaxBlockSize;\r
 \r
   TmpBuffer = NULL;\r
 \r
-  if (This == NULL || BlockSize == NULL || Progress == NULL) {\r
+  if ((This == NULL) || (BlockSize == NULL) || (Progress == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
@@ -5817,9 +6017,9 @@ HiiConfigToBlock (
   Private = CONFIG_ROUTING_DATABASE_PRIVATE_DATA_FROM_THIS (This);\r
   ASSERT (Private != NULL);\r
 \r
-  StringPtr  = ConfigResp;\r
-  BufferSize = *BlockSize;\r
-  Value      = NULL;\r
+  StringPtr    = ConfigResp;\r
+  BufferSize   = *BlockSize;\r
+  Value        = NULL;\r
   MaxBlockSize = 0;\r
 \r
   //\r
@@ -5827,24 +6027,27 @@ HiiConfigToBlock (
   //\r
   if (StrnCmp (StringPtr, L"GUID=", StrLen (L"GUID=")) != 0) {\r
     *Progress = StringPtr;\r
-    Status = EFI_INVALID_PARAMETER;\r
+    Status    = EFI_INVALID_PARAMETER;\r
     goto Exit;\r
   }\r
+\r
   while (*StringPtr != 0 && StrnCmp (StringPtr, L"PATH=", StrLen (L"PATH=")) != 0) {\r
     StringPtr++;\r
   }\r
+\r
   if (*StringPtr == 0) {\r
     *Progress = StringPtr;\r
-    Status = EFI_INVALID_PARAMETER;\r
+    Status    = EFI_INVALID_PARAMETER;\r
     goto Exit;\r
   }\r
 \r
   while (*StringPtr != L'&' && *StringPtr != 0) {\r
     StringPtr++;\r
   }\r
+\r
   if (*StringPtr == 0) {\r
     *Progress = StringPtr;\r
-    Status = EFI_INVALID_PARAMETER;\r
+    Status    = EFI_INVALID_PARAMETER;\r
     goto Exit;\r
   }\r
 \r
@@ -5864,6 +6067,7 @@ HiiConfigToBlock (
       *Progress = TmpPtr;\r
       goto Exit;\r
     }\r
+\r
     Offset = 0;\r
     CopyMem (\r
       &Offset,\r
@@ -5875,9 +6079,10 @@ HiiConfigToBlock (
     StringPtr += Length;\r
     if (StrnCmp (StringPtr, L"&WIDTH=", StrLen (L"&WIDTH=")) != 0) {\r
       *Progress = TmpPtr;\r
-      Status = EFI_INVALID_PARAMETER;\r
+      Status    = EFI_INVALID_PARAMETER;\r
       goto Exit;\r
     }\r
+\r
     StringPtr += StrLen (L"&WIDTH=");\r
 \r
     //\r
@@ -5888,6 +6093,7 @@ HiiConfigToBlock (
       *Progress = TmpPtr;\r
       goto Exit;\r
     }\r
+\r
     Width = 0;\r
     CopyMem (\r
       &Width,\r
@@ -5899,9 +6105,10 @@ HiiConfigToBlock (
     StringPtr += Length;\r
     if (StrnCmp (StringPtr, L"&VALUE=", StrLen (L"&VALUE=")) != 0) {\r
       *Progress = TmpPtr;\r
-      Status = EFI_INVALID_PARAMETER;\r
+      Status    = EFI_INVALID_PARAMETER;\r
       goto Exit;\r
     }\r
+\r
     StringPtr += StrLen (L"&VALUE=");\r
 \r
     //\r
@@ -5914,9 +6121,9 @@ HiiConfigToBlock (
     }\r
 \r
     StringPtr += Length;\r
-    if (*StringPtr != 0 && *StringPtr != L'&') {\r
+    if ((*StringPtr != 0) && (*StringPtr != L'&')) {\r
       *Progress = TmpPtr;\r
-      Status = EFI_INVALID_PARAMETER;\r
+      Status    = EFI_INVALID_PARAMETER;\r
       goto Exit;\r
     }\r
 \r
@@ -5926,6 +6133,7 @@ HiiConfigToBlock (
     if ((Block != NULL) && (Offset + Width <= BufferSize)) {\r
       CopyMem (Block + Offset, Value, Width);\r
     }\r
+\r
     if (Offset + Width > MaxBlockSize) {\r
       MaxBlockSize = Offset + Width;\r
     }\r
@@ -5946,11 +6154,11 @@ HiiConfigToBlock (
   //\r
   if (*StringPtr != 0) {\r
     *Progress = StringPtr;\r
-    Status = EFI_INVALID_PARAMETER;\r
+    Status    = EFI_INVALID_PARAMETER;\r
     goto Exit;\r
   }\r
 \r
-  *Progress = StringPtr + StrLen (StringPtr);\r
+  *Progress  = StringPtr + StrLen (StringPtr);\r
   *BlockSize = MaxBlockSize - 1;\r
 \r
   if (MaxBlockSize > BufferSize) {\r
@@ -5972,10 +6180,10 @@ Exit:
   if (Value != NULL) {\r
     FreePool (Value);\r
   }\r
+\r
   return Status;\r
 }\r
 \r
-\r
 /**\r
   This helper function is to be called by drivers to extract portions of\r
   a larger configuration string.\r
@@ -6019,29 +6227,29 @@ Exit:
 EFI_STATUS\r
 EFIAPI\r
 HiiGetAltCfg (\r
-  IN  CONST EFI_HII_CONFIG_ROUTING_PROTOCOL    *This,\r
-  IN  CONST EFI_STRING                         Configuration,\r
-  IN  CONST EFI_GUID                           *Guid,\r
-  IN  CONST EFI_STRING                         Name,\r
-  IN  CONST EFI_DEVICE_PATH_PROTOCOL           *DevicePath,\r
-  IN  CONST UINT16                             *AltCfgId,\r
-  OUT EFI_STRING                               *AltCfgResp\r
+  IN  CONST EFI_HII_CONFIG_ROUTING_PROTOCOL  *This,\r
+  IN  CONST EFI_STRING                       Configuration,\r
+  IN  CONST EFI_GUID                         *Guid,\r
+  IN  CONST EFI_STRING                       Name,\r
+  IN  CONST EFI_DEVICE_PATH_PROTOCOL         *DevicePath,\r
+  IN  CONST UINT16                           *AltCfgId,\r
+  OUT EFI_STRING                             *AltCfgResp\r
   )\r
 {\r
-  EFI_STATUS                          Status;\r
-  EFI_STRING                          StringPtr;\r
-  EFI_STRING                          HdrStart;\r
-  EFI_STRING                          HdrEnd;\r
-  EFI_STRING                          TmpPtr;\r
-  UINTN                               Length;\r
-  EFI_STRING                          GuidStr;\r
-  EFI_STRING                          NameStr;\r
-  EFI_STRING                          PathStr;\r
-  EFI_STRING                          AltIdStr;\r
-  EFI_STRING                          Result;\r
-  BOOLEAN                             GuidFlag;\r
-  BOOLEAN                             NameFlag;\r
-  BOOLEAN                             PathFlag;\r
+  EFI_STATUS  Status;\r
+  EFI_STRING  StringPtr;\r
+  EFI_STRING  HdrStart;\r
+  EFI_STRING  HdrEnd;\r
+  EFI_STRING  TmpPtr;\r
+  UINTN       Length;\r
+  EFI_STRING  GuidStr;\r
+  EFI_STRING  NameStr;\r
+  EFI_STRING  PathStr;\r
+  EFI_STRING  AltIdStr;\r
+  EFI_STRING  Result;\r
+  BOOLEAN     GuidFlag;\r
+  BOOLEAN     NameFlag;\r
+  BOOLEAN     PathFlag;\r
 \r
   HdrStart = NULL;\r
   HdrEnd   = NULL;\r
@@ -6054,7 +6262,7 @@ HiiGetAltCfg (
   NameFlag = FALSE;\r
   PathFlag = FALSE;\r
 \r
-  if (This == NULL || Configuration == NULL || AltCfgResp == NULL) {\r
+  if ((This == NULL) || (Configuration == NULL) || (AltCfgResp == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
@@ -6066,19 +6274,20 @@ HiiGetAltCfg (
   //\r
   // Generate the sub string for later matching.\r
   //\r
-  GenerateSubStr (L"GUID=", sizeof (EFI_GUID), (VOID *) Guid, 1, &GuidStr);\r
+  GenerateSubStr (L"GUID=", sizeof (EFI_GUID), (VOID *)Guid, 1, &GuidStr);\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
     &PathStr\r
     );\r
   if (AltCfgId != NULL) {\r
-    GenerateSubStr (L"ALTCFG=", sizeof (UINT16), (VOID *) AltCfgId, 3, &AltIdStr);\r
+    GenerateSubStr (L"ALTCFG=", sizeof (UINT16), (VOID *)AltCfgId, 3, &AltIdStr);\r
   }\r
+\r
   if (Name != NULL) {\r
-    GenerateSubStr (L"NAME=", StrLen (Name) * sizeof (CHAR16), (VOID *) Name, 2, &NameStr);\r
+    GenerateSubStr (L"NAME=", StrLen (Name) * sizeof (CHAR16), (VOID *)Name, 2, &NameStr);\r
   } else {\r
     GenerateSubStr (L"NAME=", 0, NULL, 2, &NameStr);\r
   }\r
@@ -6093,6 +6302,7 @@ HiiGetAltCfg (
         Status = EFI_NOT_FOUND;\r
         goto Exit;\r
       }\r
+\r
       HdrStart = TmpPtr;\r
 \r
       //\r
@@ -6107,6 +6317,7 @@ HiiGetAltCfg (
           goto Exit;\r
         }\r
       }\r
+\r
       GuidFlag = TRUE;\r
     }\r
 \r
@@ -6129,6 +6340,7 @@ HiiGetAltCfg (
             goto Exit;\r
           }\r
         }\r
+\r
         NameFlag = TRUE;\r
       }\r
     }\r
@@ -6152,8 +6364,10 @@ HiiGetAltCfg (
             Status = EFI_NOT_FOUND;\r
             goto Exit;\r
           }\r
-          StringPtr ++;\r
+\r
+          StringPtr++;\r
         }\r
+\r
         PathFlag = TRUE;\r
         HdrEnd   = StringPtr;\r
       }\r
@@ -6170,6 +6384,7 @@ HiiGetAltCfg (
         Status = OutputConfigBody (StringPtr, &Result);\r
         goto Exit;\r
       }\r
+\r
       //\r
       // Search the <ConfigAltResp> to get the <AltResp> with AltCfgId.\r
       //\r
@@ -6196,7 +6411,7 @@ Exit:
     //\r
     // Copy the <ConfigHdr> and <ConfigBody>\r
     //\r
-    Length = HdrEnd - HdrStart + StrLen (Result) + 1;\r
+    Length      = HdrEnd - HdrStart + StrLen (Result) + 1;\r
     *AltCfgResp = AllocateZeroPool (Length * sizeof (CHAR16));\r
     if (*AltCfgResp == NULL) {\r
       Status = EFI_OUT_OF_RESOURCES;\r
@@ -6210,21 +6425,22 @@ Exit:
   if (GuidStr != NULL) {\r
     FreePool (GuidStr);\r
   }\r
+\r
   if (NameStr != NULL) {\r
     FreePool (NameStr);\r
   }\r
+\r
   if (PathStr != NULL) {\r
     FreePool (PathStr);\r
   }\r
+\r
   if (AltIdStr != NULL) {\r
     FreePool (AltIdStr);\r
   }\r
+\r
   if (Result != NULL) {\r
     FreePool (Result);\r
   }\r
 \r
   return Status;\r
-\r
 }\r
-\r
-\r