]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/BootMaint.c
1) Make naming of enumeration type follows coding style
[mirror_edk2.git] / IntelFrameworkModulePkg / Universal / BdsDxe / BootMaint / BootMaint.c
index 4598d3d186140300af2ff430bf3d2d2b73744253..c0fd073aaa2e48989ebaae7f9b9b0904dace8815 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   The functions for Boot Maintainence Main menu.\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation. <BR>\r
+Copyright (c) 2004 - 2009, Intel Corporation. <BR>\r
 All rights reserved. This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
@@ -28,12 +28,61 @@ EFI_DEVICE_PATH_PROTOCOL  EndDevicePath[] = {
   }\r
 };\r
 \r
+HII_VENDOR_DEVICE_PATH  mBmmHiiVendorDevicePath = {\r
+  {\r
+    {\r
+      HARDWARE_DEVICE_PATH,\r
+      HW_VENDOR_DP,\r
+      {\r
+        (UINT8) (sizeof (VENDOR_DEVICE_PATH)),\r
+        (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)\r
+      }\r
+    },\r
+    //\r
+    // {165A028F-0BB2-4b5f-8747-77592E3F6499}\r
+    //\r
+    { 0x165a028f, 0xbb2, 0x4b5f, { 0x87, 0x47, 0x77, 0x59, 0x2e, 0x3f, 0x64, 0x99 } }\r
+  },\r
+  {\r
+    END_DEVICE_PATH_TYPE,\r
+    END_ENTIRE_DEVICE_PATH_SUBTYPE,\r
+    { \r
+      (UINT8) (END_DEVICE_PATH_LENGTH),\r
+      (UINT8) ((END_DEVICE_PATH_LENGTH) >> 8)\r
+    }\r
+  }\r
+};\r
+\r
+HII_VENDOR_DEVICE_PATH  mFeHiiVendorDevicePath = {\r
+  {\r
+    {\r
+      HARDWARE_DEVICE_PATH,\r
+      HW_VENDOR_DP,\r
+      {\r
+        (UINT8) (sizeof (VENDOR_DEVICE_PATH)),\r
+        (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)\r
+      }\r
+    },\r
+    //\r
+    // {91DB4238-B0C8-472e-BBCF-F3A6541010F4}\r
+    //\r
+    { 0x91db4238, 0xb0c8, 0x472e, { 0xbb, 0xcf, 0xf3, 0xa6, 0x54, 0x10, 0x10, 0xf4 } }\r
+  },\r
+  {\r
+    END_DEVICE_PATH_TYPE,\r
+    END_ENTIRE_DEVICE_PATH_SUBTYPE,\r
+    { \r
+      (UINT8) (END_DEVICE_PATH_LENGTH),\r
+      (UINT8) ((END_DEVICE_PATH_LENGTH) >> 8)\r
+    }\r
+  }\r
+};\r
 \r
 EFI_GUID EfiLegacyDevOrderGuid  = EFI_LEGACY_DEV_ORDER_VARIABLE_GUID;\r
 EFI_GUID mBootMaintGuid         = BOOT_MAINT_FORMSET_GUID;\r
 EFI_GUID mFileExplorerGuid      = FILE_EXPLORE_FORMSET_GUID;\r
 \r
-CHAR16  mBootMaintStorageName[]     = L"BmData";\r
+CHAR16  mBootMaintStorageName[]     = L"BmmData";\r
 CHAR16  mFileExplorerStorageName[]  = L"FeData";\r
 \r
 /**\r
@@ -79,20 +128,22 @@ CreateMenuStringToken (
   for (Index = 0; Index < MenuOption->MenuNumber; Index++) {\r
     NewMenuEntry = BOpt_GetMenuEntry (MenuOption, Index);\r
 \r
-    HiiLibNewString (\r
-      HiiHandle,\r
-      &NewMenuEntry->DisplayStringToken,\r
-      NewMenuEntry->DisplayString\r
-      );\r
+    NewMenuEntry->DisplayStringToken = HiiSetString (\r
+                                         HiiHandle,\r
+                                         0,\r
+                                         NewMenuEntry->DisplayString,\r
+                                         NULL\r
+                                         );\r
 \r
     if (NULL == NewMenuEntry->HelpString) {\r
       NewMenuEntry->HelpStringToken = NewMenuEntry->DisplayStringToken;\r
     } else {\r
-      HiiLibNewString (\r
-        HiiHandle,\r
-        &NewMenuEntry->HelpStringToken,\r
-        NewMenuEntry->HelpString\r
-        );\r
+      NewMenuEntry->HelpStringToken = HiiSetString (\r
+                                        HiiHandle,\r
+                                        0,\r
+                                        NewMenuEntry->HelpString,\r
+                                        NULL\r
+                                        );\r
     }\r
   }\r
 \r
@@ -200,8 +251,7 @@ BootMaintCallback (
   UINT8             *NewLegacyDev;\r
   UINT8             *DisMap;\r
   EFI_FORM_ID       FormId;\r
-  UINTN             BufferSize;\r
-\r
+  \r
   if ((Value == NULL) || (ActionRequest == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
@@ -222,11 +272,7 @@ BootMaintCallback (
   // Retrive uncommitted data from Form Browser\r
   //\r
   CurrentFakeNVMap = &Private->BmmFakeNvData;\r
-  BufferSize = sizeof (BMM_FAKE_NV_DATA);\r
-  Status = GetBrowserData (NULL, NULL, &BufferSize, (UINT8 *) CurrentFakeNVMap);\r
-  if (EFI_ERROR (Status)) {\r
-    return Status;\r
-  }\r
+  HiiGetBrowserData (&mBootMaintGuid, mBootMaintStorageName, sizeof (BMM_FAKE_NV_DATA), (UINT8 *) CurrentFakeNVMap);\r
 \r
   //\r
   // need to be subtituded.\r
@@ -404,7 +450,7 @@ BootMaintCallback (
     if (QuestionId < CONFIG_OPTION_OFFSET) {\r
       switch (QuestionId) {\r
       case KEY_VALUE_BOOT_FROM_FILE:\r
-        Private->FeCurrentState = BOOT_FROM_FILE_STATE;\r
+        Private->FeCurrentState = FileExplorerStateBootFromFile;\r
 \r
         //\r
         // Exit Bmm main formset to send File Explorer formset.\r
@@ -413,7 +459,7 @@ BootMaintCallback (
         break;\r
 \r
       case FORM_BOOT_ADD_ID:\r
-        Private->FeCurrentState = ADD_BOOT_OPTION_STATE;\r
+        Private->FeCurrentState = FileExplorerStateAddBootOption;\r
 \r
         //\r
         // Exit Bmm main formset to send File Explorer formset.\r
@@ -422,7 +468,7 @@ BootMaintCallback (
         break;\r
 \r
       case FORM_DRV_ADD_FILE_ID:\r
-        Private->FeCurrentState = ADD_DRIVER_OPTION_STATE;\r
+        Private->FeCurrentState = FileExplorerStateAddDriverOptionState;\r
 \r
         //\r
         // Exit Bmm main formset to send File Explorer formset.\r
@@ -537,8 +583,7 @@ BootMaintCallback (
   //\r
   // Pass changed uncommitted data back to Form Browser\r
   //\r
-  BufferSize = sizeof (BMM_FAKE_NV_DATA);\r
-  Status = SetBrowserData (NULL, NULL, BufferSize, (UINT8 *) CurrentFakeNVMap, NULL);\r
+  Status = HiiSetBrowserData (&mBootMaintGuid, mBootMaintStorageName, sizeof (BMM_FAKE_NV_DATA), (UINT8 *) CurrentFakeNVMap, NULL);\r
 \r
   return Status;\r
 }\r
@@ -610,16 +655,7 @@ ApplyChangeHandler (
     break;\r
 \r
   case FORM_TIME_OUT_ID:\r
-    Status = gRT->SetVariable (\r
-                    L"Timeout",\r
-                    &gEfiGlobalVariableGuid,\r
-                    VAR_FLAG,\r
-                    sizeof (UINT16),\r
-                    &(CurrentFakeNVMap->BootTimeOut)\r
-                    );\r
-    if (EFI_ERROR (Status)) {\r
-      goto Error;\r
-    }\r
+    PcdSet16 (PcdPlatformBootTimeOut, CurrentFakeNVMap->BootTimeOut);\r
 \r
     Private->BmmOldFakeNVData.BootTimeOut = CurrentFakeNVMap->BootTimeOut;\r
     break;\r
@@ -808,7 +844,6 @@ InitializeBM (
   )\r
 {\r
   EFI_LEGACY_BIOS_PROTOCOL    *LegacyBios;\r
-  EFI_HII_PACKAGE_LIST_HEADER *PackageList;\r
   BMM_CALLBACK_DATA           *BmmCallbackInfo;\r
   EFI_STATUS                  Status;\r
   UINT8                       *Ptr;\r
@@ -855,90 +890,91 @@ InitializeBM (
   BmmCallbackInfo->FeConfigAccess.ExtractConfig  = FakeExtractConfig;\r
   BmmCallbackInfo->FeConfigAccess.RouteConfig    = FakeRouteConfig;\r
   BmmCallbackInfo->FeConfigAccess.Callback       = FileExplorerCallback;\r
-  BmmCallbackInfo->FeCurrentState                = INACTIVE_STATE;\r
-  BmmCallbackInfo->FeDisplayContext              = UNKNOWN_CONTEXT;\r
+  BmmCallbackInfo->FeCurrentState                = FileExplorerStateInActive;\r
+  BmmCallbackInfo->FeDisplayContext              = FileExplorerDisplayUnknown;\r
 \r
   //\r
-  // Create driver handle used by HII database\r
+  // Install Device Path Protocol and Config Access protocol to driver handle\r
   //\r
-  Status = HiiLibCreateHiiDriverHandle (&BmmCallbackInfo->BmmDriverHandle);\r
-  if (EFI_ERROR (Status)) {\r
-    return Status;\r
-  }\r
-\r
-  //\r
-  // Install Config Access protocol to driver handle\r
-  //\r
-  Status = gBS->InstallProtocolInterface (\r
+  Status = gBS->InstallMultipleProtocolInterfaces (\r
                   &BmmCallbackInfo->BmmDriverHandle,\r
+                  &gEfiDevicePathProtocolGuid,\r
+                  &mBmmHiiVendorDevicePath,\r
                   &gEfiHiiConfigAccessProtocolGuid,\r
-                  EFI_NATIVE_INTERFACE,\r
-                  &BmmCallbackInfo->BmmConfigAccess\r
+                  &BmmCallbackInfo->BmmConfigAccess,\r
+                  NULL\r
                   );\r
   if (EFI_ERROR (Status)) {\r
-    return Status;\r
+    goto Exit;\r
   }\r
 \r
   //\r
-  // Create driver handle used by HII database\r
+  // Install Device Path Protocol and Config Access protocol to driver handle\r
   //\r
-  Status = HiiLibCreateHiiDriverHandle (&BmmCallbackInfo->FeDriverHandle);\r
-  if (EFI_ERROR (Status)) {\r
-    return Status;\r
-  }\r
-\r
-  //\r
-  // Install Config Access protocol to driver handle\r
-  //\r
-  Status = gBS->InstallProtocolInterface (\r
+  Status = gBS->InstallMultipleProtocolInterfaces (\r
                   &BmmCallbackInfo->FeDriverHandle,\r
+                  &gEfiDevicePathProtocolGuid,\r
+                  &mFeHiiVendorDevicePath,\r
                   &gEfiHiiConfigAccessProtocolGuid,\r
-                  EFI_NATIVE_INTERFACE,\r
-                  &BmmCallbackInfo->FeConfigAccess\r
+                  &BmmCallbackInfo->FeConfigAccess,\r
+                  NULL\r
                   );\r
   if (EFI_ERROR (Status)) {\r
-    return Status;\r
+    goto Exit;\r
   }\r
 \r
   //\r
   // Post our Boot Maint VFR binnary to the HII database.\r
   //\r
-  PackageList = HiiLibPreparePackageList (2, &mBootMaintGuid, BmBin, BdsDxeStrings);\r
-  ASSERT (PackageList != NULL);\r
-\r
-  Status = gHiiDatabase->NewPackageList (\r
-                           gHiiDatabase,\r
-                           PackageList,\r
-                           BmmCallbackInfo->BmmDriverHandle,\r
-                           &BmmCallbackInfo->BmmHiiHandle\r
-                           );\r
-  FreePool (PackageList);\r
+  BmmCallbackInfo->BmmHiiHandle = HiiAddPackages (\r
+                                    &mBootMaintGuid,\r
+                                    BmmCallbackInfo->BmmDriverHandle,\r
+                                    BmBin,\r
+                                    BdsDxeStrings,\r
+                                    NULL\r
+                                    );\r
+  ASSERT (BmmCallbackInfo->BmmHiiHandle != NULL);\r
 \r
   //\r
   // Post our File Explorer VFR binary to the HII database.\r
   //\r
-  PackageList = HiiLibPreparePackageList (2, &mFileExplorerGuid, FEBin, BdsDxeStrings);\r
-  ASSERT (PackageList != NULL);\r
-\r
-  Status = gHiiDatabase->NewPackageList (\r
-                           gHiiDatabase,\r
-                           PackageList,\r
-                           BmmCallbackInfo->FeDriverHandle,\r
-                           &BmmCallbackInfo->FeHiiHandle\r
-                           );\r
-  FreePool (PackageList);\r
+  BmmCallbackInfo->FeHiiHandle = HiiAddPackages (\r
+                                   &mFileExplorerGuid,\r
+                                   BmmCallbackInfo->FeDriverHandle,\r
+                                   FEBin,\r
+                                   BdsDxeStrings,\r
+                                   NULL\r
+                                   );\r
+  ASSERT (BmmCallbackInfo->FeHiiHandle != NULL);\r
 \r
   //\r
-  // Allocate space for creation of Buffer\r
+  // Init OpCode Handle and Allocate space for creation of Buffer\r
   //\r
-  gUpdateData.BufferSize = UPDATE_DATA_SIZE;\r
-  gUpdateData.Data = AllocateZeroPool (UPDATE_DATA_SIZE);\r
-  if (gUpdateData.Data == NULL) {\r
-    FreePool (BmmCallbackInfo->LoadContext);\r
-    FreePool (BmmCallbackInfo);\r
-    return EFI_OUT_OF_RESOURCES;\r
+  mStartOpCodeHandle = HiiAllocateOpCodeHandle ();\r
+  if (mStartOpCodeHandle == NULL) {\r
+    Status = EFI_OUT_OF_RESOURCES;\r
+    goto Exit;\r
   }\r
 \r
+  mEndOpCodeHandle = HiiAllocateOpCodeHandle ();\r
+  if (mEndOpCodeHandle == NULL) {\r
+    Status = EFI_OUT_OF_RESOURCES;\r
+    goto Exit;\r
+  }\r
+\r
+  //\r
+  // Create Hii Extend Label OpCode as the start opcode\r
+  //\r
+  mStartLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (mStartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));\r
+  mStartLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;\r
+\r
+  //\r
+  // Create Hii Extend Label OpCode as the end opcode\r
+  //\r
+  mEndLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (mEndOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));\r
+  mEndLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;\r
+  mEndLabel->Number       = LABEL_END;\r
+\r
   InitializeStringDepository ();\r
 \r
   InitAllMenu (BmmCallbackInfo);\r
@@ -962,63 +998,63 @@ InitializeBM (
   Status = EfiLibLocateProtocol (&gEfiLegacyBiosProtocolGuid, (VOID **) &LegacyBios);\r
   if (!EFI_ERROR (Status)) {\r
     RefreshUpdateData ();\r
+    mStartLabel->Number = FORM_BOOT_LEGACY_DEVICE_ID;\r
 \r
     //\r
     // If LegacyBios Protocol is installed, add 3 tags about legacy boot option\r
     // in BootOption form: legacy FD/HD/CD/NET/BEV\r
     //\r
-    CreateGotoOpCode (\r
+    HiiCreateGotoOpCode (\r
+      mStartOpCodeHandle,\r
       FORM_SET_FD_ORDER_ID,\r
       STRING_TOKEN (STR_FORM_SET_FD_ORDER_TITLE),\r
       STRING_TOKEN (STR_FORM_SET_FD_ORDER_TITLE),\r
       EFI_IFR_FLAG_CALLBACK,\r
-      FORM_SET_FD_ORDER_ID,\r
-      &gUpdateData\r
+      FORM_SET_FD_ORDER_ID\r
       );\r
 \r
-    CreateGotoOpCode (\r
+    HiiCreateGotoOpCode (\r
+      mStartOpCodeHandle,\r
       FORM_SET_HD_ORDER_ID,\r
       STRING_TOKEN (STR_FORM_SET_HD_ORDER_TITLE),\r
       STRING_TOKEN (STR_FORM_SET_HD_ORDER_TITLE),\r
       EFI_IFR_FLAG_CALLBACK,\r
-      FORM_SET_HD_ORDER_ID,\r
-      &gUpdateData\r
+      FORM_SET_HD_ORDER_ID\r
       );\r
 \r
-    CreateGotoOpCode (\r
+    HiiCreateGotoOpCode (\r
+      mStartOpCodeHandle,\r
       FORM_SET_CD_ORDER_ID,\r
       STRING_TOKEN (STR_FORM_SET_CD_ORDER_TITLE),\r
       STRING_TOKEN (STR_FORM_SET_CD_ORDER_TITLE),\r
       EFI_IFR_FLAG_CALLBACK,\r
-      FORM_SET_CD_ORDER_ID,\r
-      &gUpdateData\r
+      FORM_SET_CD_ORDER_ID\r
       );\r
 \r
-    CreateGotoOpCode (\r
+    HiiCreateGotoOpCode (\r
+      mStartOpCodeHandle,\r
       FORM_SET_NET_ORDER_ID,\r
       STRING_TOKEN (STR_FORM_SET_NET_ORDER_TITLE),\r
       STRING_TOKEN (STR_FORM_SET_NET_ORDER_TITLE),\r
       EFI_IFR_FLAG_CALLBACK,\r
-      FORM_SET_NET_ORDER_ID,\r
-      &gUpdateData\r
+      FORM_SET_NET_ORDER_ID\r
       );\r
 \r
-    CreateGotoOpCode (\r
+    HiiCreateGotoOpCode (\r
+      mStartOpCodeHandle,\r
       FORM_SET_BEV_ORDER_ID,\r
       STRING_TOKEN (STR_FORM_SET_BEV_ORDER_TITLE),\r
       STRING_TOKEN (STR_FORM_SET_BEV_ORDER_TITLE),\r
       EFI_IFR_FLAG_CALLBACK,\r
-      FORM_SET_BEV_ORDER_ID,\r
-      &gUpdateData\r
+      FORM_SET_BEV_ORDER_ID\r
       );\r
-\r
-    IfrLibUpdateForm (\r
+    \r
+    HiiUpdateForm (\r
       BmmCallbackInfo->BmmHiiHandle,\r
       &mBootMaintGuid,\r
-      FORM_MAIN_ID,\r
-      FORM_BOOT_LEGACY_DEVICE_ID,\r
-      FALSE,\r
-      &gUpdateData\r
+      FORM_BOOT_SETUP_ID,\r
+      mStartOpCodeHandle, // Label FORM_BOOT_LEGACY_DEVICE_ID\r
+      mEndOpCodeHandle    // LABEL_END\r
       );\r
   }\r
 \r
@@ -1030,17 +1066,46 @@ InitializeBM (
   //\r
   // Remove our IFR data from HII database\r
   //\r
-  gHiiDatabase->RemovePackageList (gHiiDatabase, BmmCallbackInfo->BmmHiiHandle);\r
-  gHiiDatabase->RemovePackageList (gHiiDatabase, BmmCallbackInfo->FeHiiHandle);\r
+  HiiRemovePackages (BmmCallbackInfo->BmmHiiHandle);\r
+  HiiRemovePackages (BmmCallbackInfo->FeHiiHandle);\r
 \r
   CleanUpStringDepository ();\r
 \r
   FreeAllMenu ();\r
 \r
+Exit:\r
+  if (mStartOpCodeHandle != NULL) {\r
+    HiiFreeOpCodeHandle (mStartOpCodeHandle);\r
+  }\r
+\r
+  if (mEndOpCodeHandle != NULL) {\r
+    HiiFreeOpCodeHandle (mEndOpCodeHandle);\r
+  }\r
+\r
+  if (BmmCallbackInfo->FeDriverHandle != NULL) {\r
+    gBS->UninstallMultipleProtocolInterfaces (\r
+           BmmCallbackInfo->FeDriverHandle,\r
+           &gEfiDevicePathProtocolGuid,\r
+           &mFeHiiVendorDevicePath,\r
+           &gEfiHiiConfigAccessProtocolGuid,\r
+           &BmmCallbackInfo->FeConfigAccess,\r
+           NULL\r
+           );\r
+  }\r
+\r
+  if (BmmCallbackInfo->BmmDriverHandle != NULL) {\r
+    gBS->UninstallMultipleProtocolInterfaces (\r
+           BmmCallbackInfo->BmmDriverHandle,\r
+           &gEfiDevicePathProtocolGuid,\r
+           &mBmmHiiVendorDevicePath,\r
+           &gEfiHiiConfigAccessProtocolGuid,\r
+           &BmmCallbackInfo->BmmConfigAccess,\r
+           NULL\r
+           );\r
+  }\r
+\r
   FreePool (BmmCallbackInfo->LoadContext);\r
   FreePool (BmmCallbackInfo);\r
-  FreePool (gUpdateData.Data);\r
-  gUpdateData.Data = NULL;\r
 \r
   return Status;\r
 }\r
@@ -1141,7 +1206,7 @@ GetStringTokenFromDepository (
     //\r
     NextListNode = AllocateZeroPool (sizeof (STRING_LIST_NODE));\r
     ASSERT (NextListNode != NULL);\r
-    HiiLibNewString (CallbackData->BmmHiiHandle, &(NextListNode->StringToken), L" ");\r
+    NextListNode->StringToken = HiiSetString (CallbackData->BmmHiiHandle, 0, L" ", NULL);\r
     ASSERT (NextListNode->StringToken != 0);\r
 \r
     StringDepository->TotalNodeNumber++;\r
@@ -1276,7 +1341,7 @@ FormSetDispatcher (
                              gFormBrowser2,\r
                              &CallbackData->BmmHiiHandle,\r
                              1,\r
-                             NULL,\r
+                             &mBootMaintGuid,\r
                              0,\r
                              NULL,\r
                              &ActionRequest\r
@@ -1290,7 +1355,7 @@ FormSetDispatcher (
     //\r
     // When this Formset returns, check if we are going to explore files.\r
     //\r
-    if (INACTIVE_STATE != CallbackData->FeCurrentState) {\r
+    if (FileExplorerStateInActive != CallbackData->FeCurrentState) {\r
       UpdateFileExplorer (CallbackData, 0);\r
 \r
       ActionRequest = EFI_BROWSER_ACTION_REQUEST_NONE;\r
@@ -1298,7 +1363,7 @@ FormSetDispatcher (
                                gFormBrowser2,\r
                                &CallbackData->FeHiiHandle,\r
                                1,\r
-                               NULL,\r
+                               &mFileExplorerGuid,\r
                                0,\r
                                NULL,\r
                                &ActionRequest\r
@@ -1307,8 +1372,8 @@ FormSetDispatcher (
         EnableResetRequired ();\r
       }\r
 \r
-      CallbackData->FeCurrentState    = INACTIVE_STATE;\r
-      CallbackData->FeDisplayContext  = UNKNOWN_CONTEXT;\r
+      CallbackData->FeCurrentState    = FileExplorerStateInActive;\r
+      CallbackData->FeDisplayContext  = FileExplorerDisplayUnknown;\r
       ReclaimStringDepository ();\r
     } else {\r
       break;\r
@@ -1332,6 +1397,7 @@ FormSetDispatcher (
 \r
 **/\r
 EFI_STATUS\r
+EFIAPI\r
 BdsDeleteBootOption (\r
   IN UINTN                       OptionNumber,\r
   IN OUT UINT16                  *BootOrder,\r