]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Correct DriverSample ConfigAcess protocol ExtractConfig interface.
authorlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 25 Jun 2009 09:08:30 +0000 (09:08 +0000)
committerlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 25 Jun 2009 09:08:30 +0000 (09:08 +0000)
Correct SetupBrowser to set default value for default sting ID.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8660 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Universal/DriverSampleDxe/DriverSample.c
MdeModulePkg/Universal/SetupBrowserDxe/Setup.c

index 74866be7a96fcf663e40e41b9fed4c47a9e5f4e5..38d36f8a287a26c292f8a5e0c9278c7293870fe1 100644 (file)
@@ -22,11 +22,6 @@ EFI_GUID   mFormSetGuid = FORMSET_GUID;
 EFI_GUID   mInventoryGuid = INVENTORY_GUID;\r
 \r
 CHAR16     VariableName[] = L"MyIfrNVData";\r
 EFI_GUID   mInventoryGuid = INVENTORY_GUID;\r
 \r
 CHAR16     VariableName[] = L"MyIfrNVData";\r
-//\r
-// <ConfigHdr> Template\r
-//\r
-CONST CHAR16 mDriverSampleConfigHdr[] = L"GUID=00000000000000000000000000000000&NAME=0000&PATH=00";\r
-\r
 EFI_HANDLE                      DriverHandle[2] = {NULL, NULL};\r
 DRIVER_SAMPLE_PRIVATE_DATA      *PrivateData = NULL;\r
 \r
 EFI_HANDLE                      DriverHandle[2] = {NULL, NULL};\r
 DRIVER_SAMPLE_PRIVATE_DATA      *PrivateData = NULL;\r
 \r
@@ -347,17 +342,19 @@ ExtractConfig (
   DRIVER_SAMPLE_PRIVATE_DATA       *PrivateData;\r
   EFI_HII_CONFIG_ROUTING_PROTOCOL  *HiiConfigRouting;\r
   EFI_STRING                       ConfigRequest;\r
   DRIVER_SAMPLE_PRIVATE_DATA       *PrivateData;\r
   EFI_HII_CONFIG_ROUTING_PROTOCOL  *HiiConfigRouting;\r
   EFI_STRING                       ConfigRequest;\r
+  EFI_STRING                       ConfigRequestHdr;\r
   UINTN                            Size;\r
   \r
   UINTN                            Size;\r
   \r
-  if (Progress == NULL || Results == NULL) {\r
+  if (Progress == NULL || Results == NULL || Request == NULL) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
   //\r
   // Initialize the local variables.\r
   //\r
     return EFI_INVALID_PARAMETER;\r
   }\r
   //\r
   // Initialize the local variables.\r
   //\r
-  ConfigRequest    = NULL;\r
-  Size             = 0;\r
-  *Progress        = Request;\r
+  ConfigRequestHdr  = NULL;\r
+  ConfigRequest     = NULL;\r
+  Size              = 0;\r
+  *Progress         = Request;\r
 \r
   PrivateData = DRIVER_SAMPLE_PRIVATE_FROM_THIS (This);\r
   HiiConfigRouting = PrivateData->HiiConfigRouting;\r
 \r
   PrivateData = DRIVER_SAMPLE_PRIVATE_FROM_THIS (This);\r
   HiiConfigRouting = PrivateData->HiiConfigRouting;\r
@@ -387,9 +384,11 @@ ExtractConfig (
     // Allocate and fill a buffer large enough to hold the <ConfigHdr> template \r
     // followed by "&OFFSET=0&WIDTH=WWWWWWWWWWWWWWWW" followed by a Null-terminator\r
     //\r
     // Allocate and fill a buffer large enough to hold the <ConfigHdr> template \r
     // followed by "&OFFSET=0&WIDTH=WWWWWWWWWWWWWWWW" followed by a Null-terminator\r
     //\r
-    Size = (StrLen (mDriverSampleConfigHdr) + 32 + 1) * sizeof (CHAR16);\r
+    ConfigRequestHdr = HiiConstructConfigHdr (&mFormSetGuid, VariableName, PrivateData->DriverHandle[0]);\r
+    Size = (StrLen (ConfigRequest) + 32 + 1) * sizeof (CHAR16);\r
     ConfigRequest = AllocateZeroPool (Size);\r
     ConfigRequest = AllocateZeroPool (Size);\r
-    UnicodeSPrint (ConfigRequest, Size, L"%s&OFFSET=0&WIDTH=%016LX", mDriverSampleConfigHdr, (UINT64)BufferSize);\r
+    UnicodeSPrint (ConfigRequest, Size, L"%s&OFFSET=0&WIDTH=%016LX", ConfigRequestHdr, (UINT64)BufferSize);\r
+    FreePool (ConfigRequestHdr);\r
   } else {\r
     //\r
     // Check routing data in <ConfigHdr>.\r
   } else {\r
     //\r
     // Check routing data in <ConfigHdr>.\r
@@ -822,7 +821,7 @@ DriverSampleInit (
   DRIVER_SAMPLE_CONFIGURATION     *Configuration;\r
   BOOLEAN                         ActionFlag;\r
   EFI_STRING                      ConfigRequestHdr;  \r
   DRIVER_SAMPLE_CONFIGURATION     *Configuration;\r
   BOOLEAN                         ActionFlag;\r
   EFI_STRING                      ConfigRequestHdr;  \r
-\r
+  \r
   //\r
   // Initialize the local variables.\r
   //\r
   //\r
   // Initialize the local variables.\r
   //\r
index 15d4af3cf1af843018dbc4eafa6314da5c2044b0..4f2c92c818aa908bf7366930745a43bd4b3c1f5d 100644 (file)
@@ -1779,8 +1779,10 @@ GetQuestionDefault (
   QUESTION_OPTION         *Option;\r
   EFI_HII_VALUE           *HiiValue;\r
   UINT8                   Index;\r
   QUESTION_OPTION         *Option;\r
   EFI_HII_VALUE           *HiiValue;\r
   UINT8                   Index;\r
+  EFI_STRING              StrValue;\r
 \r
 \r
-  Status = EFI_SUCCESS;\r
+  Status   = EFI_SUCCESS;\r
+  StrValue = NULL;\r
 \r
   //\r
   // Statement don't have storage, skip them\r
 \r
   //\r
   // Statement don't have storage, skip them\r
@@ -1823,6 +1825,14 @@ GetQuestionDefault (
           CopyMem (HiiValue, &Default->Value, sizeof (EFI_HII_VALUE));\r
         }\r
 \r
           CopyMem (HiiValue, &Default->Value, sizeof (EFI_HII_VALUE));\r
         }\r
 \r
+        if (HiiValue->Type == EFI_IFR_TYPE_STRING) {\r
+          StrValue = HiiGetString (FormSet->HiiHandle, HiiValue->Value.string, NULL);\r
+          if (StrValue == NULL) {\r
+            return EFI_NOT_FOUND;\r
+          }\r
+          Question->BufferValue = AllocateCopyPool (StrSize (StrValue), StrValue);\r
+        }\r
+\r
         return EFI_SUCCESS;\r
       }\r
 \r
         return EFI_SUCCESS;\r
       }\r
 \r