]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/UefiIfrDefault.c
Bug fixes for FrameworkHiiToUefiHiiThunk;
[mirror_edk2.git] / EdkCompatibilityPkg / Compatibility / FrameworkHiiToUefiHiiThunk / UefiIfrDefault.c
index fa01c3f7dc23c07923c2f61d58243242d9842f47..12dd3be0b1c2bd91a187c9dad889a6f7034d9131 100644 (file)
@@ -31,7 +31,6 @@
 // Extern Variables\r
 //\r
 extern CONST EFI_HII_DATABASE_PROTOCOL            *mHiiDatabase;\r
-extern CONST EFI_HII_FONT_PROTOCOL                *mHiiFontProtocol;\r
 extern CONST EFI_HII_IMAGE_PROTOCOL               *mHiiImageProtocol;\r
 extern CONST EFI_HII_STRING_PROTOCOL              *mHiiStringProtocol;\r
 extern CONST EFI_HII_CONFIG_ROUTING_PROTOCOL      *mHiiConfigRoutingProtocol;\r
@@ -432,8 +431,6 @@ ExtractFormDefault (
   Link = GetFirstNode (&Form->StatementListHead);\r
   while (!IsNull (&Form->StatementListHead, Link)) {\r
     Question = FORM_BROWSER_STATEMENT_FROM_LINK (Link);\r
-    Link = GetNextNode (&Form->StatementListHead, Link);\r
-\r
     //\r
     // Reset Question to its default value\r
     //\r
@@ -442,6 +439,7 @@ ExtractFormDefault (
       continue;\r
     }\r
 \r
+    Link = GetNextNode (&Form->StatementListHead, Link);\r
   }\r
   return EFI_SUCCESS;\r
 }\r
@@ -502,6 +500,7 @@ GetBufferTypeDefaultIdAndStorageId (
   Node->Signature = UEFI_IFR_BUFFER_STORAGE_NODE_SIGNATURE;\r
   Node->Name      = AllocateCopyPool (StrSize (Storage->Name), Storage->Name);\r
   Node->DefaultId = DefaultStore->DefaultId;\r
+  Node->StoreId   = Storage->VarStoreId;\r
   CopyGuid (&Node->Guid, &Storage->Guid);\r
   Node->Size      = Storage->Size;\r
   Node->Buffer    = AllocateZeroPool (Node->Size);\r
@@ -545,20 +544,20 @@ GetBufferTypeDefaultId (
   OUT       LIST_ENTRY      *UefiDefaultsListHead\r
   )\r
 {\r
-  LIST_ENTRY                  *StorageListEntry;\r
+  LIST_ENTRY                  *StorageLink;\r
   FORMSET_STORAGE             *Storage;\r
   EFI_STATUS                  Status;\r
 \r
-  StorageListEntry = GetFirstNode (&FormSet->StorageListHead);\r
+  StorageLink = GetFirstNode (&FormSet->StorageListHead);\r
 \r
-  while (!IsNull (&FormSet->StorageListHead, StorageListEntry)) {\r
-    Storage = FORMSET_STORAGE_FROM_LINK(StorageListEntry);\r
+  while (!IsNull (&FormSet->StorageListHead, StorageLink)) {\r
+    Storage = FORMSET_STORAGE_FROM_LINK(StorageLink);\r
 \r
     if (Storage->Type == EFI_HII_VARSTORE_BUFFER) {\r
       Status = GetBufferTypeDefaultIdAndStorageId (DefaultStore, Storage, FormSet, UefiDefaultsListHead);\r
     }\r
 \r
-    StorageListEntry = GetNextNode (&FormSet->StorageListHead, StorageListEntry);\r
+    StorageLink = GetNextNode (&FormSet->StorageListHead, StorageLink);\r
   }\r
   \r
   return EFI_SUCCESS;\r
@@ -586,7 +585,7 @@ UefiIfrGetBufferTypeDefaults (
 {\r
   FORM_BROWSER_FORMSET *FormSet;\r
   EFI_GUID              FormSetGuid;\r
-  LIST_ENTRY            *DefaultListEntry;\r
+  LIST_ENTRY            *DefaultLink;\r
   FORMSET_DEFAULTSTORE  *DefaultStore;\r
   EFI_STATUS            Status;\r
 \r
@@ -603,14 +602,14 @@ UefiIfrGetBufferTypeDefaults (
   ASSERT (UefiDefaults != NULL);\r
   InitializeListHead (*UefiDefaults);\r
 \r
-  DefaultListEntry = GetFirstNode (&FormSet->DefaultStoreListHead);\r
-  while (!IsNull (&FormSet->DefaultStoreListHead, DefaultListEntry)) {\r
-    DefaultStore = FORMSET_DEFAULTSTORE_FROM_LINK(DefaultListEntry);\r
+  DefaultLink = GetFirstNode (&FormSet->DefaultStoreListHead);\r
+  while (!IsNull (&FormSet->DefaultStoreListHead, DefaultLink)) {\r
+    DefaultStore = FORMSET_DEFAULTSTORE_FROM_LINK(DefaultLink);\r
 \r
     Status = GetBufferTypeDefaultId (DefaultStore, FormSet, *UefiDefaults);\r
     ASSERT_EFI_ERROR (Status);\r
 \r
-    DefaultListEntry = GetNextNode (&FormSet->DefaultStoreListHead, DefaultListEntry);    \r
+    DefaultLink = GetNextNode (&FormSet->DefaultStoreListHead, DefaultLink);    \r
   }\r
 \r
   DestroyFormSet (FormSet);\r
@@ -639,7 +638,7 @@ UefiIfrGetBufferTypeDefaults (
                                                            FRAMEWORK_EFI_IFR_FLAG_MANUFACTURING.\r
 **/\r
 EFI_STATUS\r
-UefiDefaultsToFrameworkDefaults (\r
+UefiDefaultsToFwDefaults (\r
   IN     LIST_ENTRY                  *ListHead,\r
   IN     UINTN                       DefaultMask,\r
   OUT    EFI_HII_VARIABLE_PACK_LIST  **VariablePackList\r
@@ -710,14 +709,15 @@ UefiDefaultsToFrameworkDefaults (
       //\r
       if (Node->StoreId == RESERVED_VARSTORE_ID) {\r
         Pack->VariableId = 0;\r
+      } else {\r
+        Pack->VariableId = Node->StoreId;\r
       }\r
       //\r
       // Initialize EFI_HII_VARIABLE_PACK\r
       //\r
       Pack->Header.Type   = 0;\r
-      Pack->Header.Length = Size;\r
-      Pack->VariableId = Node->StoreId;\r
-      Pack->VariableNameLength = StrSize (Node->Name);\r
+      Pack->Header.Length = (UINT32) Size;\r
+      Pack->VariableNameLength = (UINT32) StrSize (Node->Name);\r
       CopyMem (&Pack->VariableGuid, &Node->Guid, sizeof (EFI_GUID));\r
       \r
       CopyMem ((UINT8 *) Pack + sizeof (EFI_HII_VARIABLE_PACK), Node->Name, StrSize (Node->Name));\r
@@ -749,28 +749,26 @@ UefiDefaultsToFrameworkDefaults (
                                               a UEFI form set.\r
                                              \r
 \r
-  @retval   EFI_SUCCESS                       Successful.\r
-  @retval   EFI_INVALID_PARAMETER      The default mask is not FRAMEWORK_EFI_IFR_FLAG_DEFAULT or \r
-                                                           FRAMEWORK_EFI_IFR_FLAG_MANUFACTURING.\r
+  @retval   VOID\r
 **/\r
 VOID\r
 FreeDefaultList (\r
   IN     LIST_ENTRY                  *ListHead\r
   )\r
 {\r
-  LIST_ENTRY *Node;\r
+  LIST_ENTRY *Link;\r
   UEFI_IFR_BUFFER_STORAGE_NODE *Default;\r
 \r
-  Node = GetFirstNode (ListHead);\r
+  Link = GetFirstNode (ListHead);\r
   \r
-  while (!IsNull (ListHead, Node)) {\r
-    Default = UEFI_IFR_BUFFER_STORAGE_NODE_FROM_LIST(Node);\r
+  while (!IsNull (ListHead, Link)) {\r
+    Default = UEFI_IFR_BUFFER_STORAGE_NODE_FROM_LIST(Link);\r
 \r
-    RemoveEntryList (Node);\r
+    RemoveEntryList (Link);\r
    \r
     DestroyDefaultNode (Default);\r
     \r
-    Node = GetFirstNode (ListHead);\r
+    Link = GetNextNode (ListHead, Link);\r
   }\r
 \r
   FreePool (ListHead);\r