UINTN Index;\r
UINT16 BootString[10];\r
UINT8 *LoadOptionFromVar;\r
- UINT8 *LoadOption;\r
UINTN BootOptionSize;\r
BOOLEAN BootNextFlag;\r
UINT16 *BootOrderList;\r
continue;\r
}\r
\r
- LoadOption = AllocateZeroPool (BootOptionSize);\r
- if (LoadOption == NULL) {\r
- continue;\r
- }\r
-\r
- CopyMem (LoadOption, LoadOptionFromVar, BootOptionSize);\r
- FreePool (LoadOptionFromVar);\r
-\r
if (BootNext != NULL) {\r
BootNextFlag = (BOOLEAN) (*BootNext == BootOrderList[Index]);\r
} else {\r
\r
NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;\r
\r
- LoadOptionPtr = LoadOption;\r
- LoadOptionEnd = LoadOption + BootOptionSize;\r
+ LoadOptionPtr = LoadOptionFromVar;\r
+ LoadOptionEnd = LoadOptionFromVar + BootOptionSize;\r
\r
NewMenuEntry->OptionNumber = BootOrderList[Index];\r
NewLoadContext->Deleted = FALSE;\r
//\r
// Is a Legacy Device?\r
//\r
- Ptr = (UINT8 *) LoadOption;\r
+ Ptr = (UINT8 *) LoadOptionFromVar;\r
\r
//\r
// Attribute = *(UINT32 *)Ptr;\r
\r
InsertTailList (&BootOptionMenu.Head, &NewMenuEntry->Link);\r
MenuCount++;\r
+ FreePool (LoadOptionFromVar);\r
}\r
EfiBootManagerFreeLoadOptions (BootOption, BootOptionCount);\r
\r
FreePool (BootOrderList);\r
}\r
\r
- FreePool(LoadOption);\r
BootOptionMenu.MenuNumber = MenuCount;\r
return EFI_SUCCESS;\r
}\r
UINTN Index;\r
UINT16 DriverString[12];\r
UINT8 *LoadOptionFromVar;\r
- UINT8 *LoadOption;\r
UINTN DriverOptionSize;\r
\r
UINT16 *DriverOrderList;\r
continue;\r
}\r
\r
- LoadOption = AllocateZeroPool (DriverOptionSize);\r
- if (LoadOption == NULL) {\r
- continue;\r
- }\r
-\r
- CopyMem (LoadOption, LoadOptionFromVar, DriverOptionSize);\r
- FreePool (LoadOptionFromVar);\r
\r
NewMenuEntry = BOpt_CreateMenuEntry (BM_LOAD_CONTEXT_SELECT);\r
if (NULL == NewMenuEntry) {\r
}\r
\r
NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;\r
- LoadOptionPtr = LoadOption;\r
- LoadOptionEnd = LoadOption + DriverOptionSize;\r
+ LoadOptionPtr = LoadOptionFromVar;\r
+ LoadOptionEnd = LoadOptionFromVar + DriverOptionSize;\r
NewMenuEntry->OptionNumber = DriverOrderList[Index];\r
NewLoadContext->Deleted = FALSE;\r
NewLoadContext->IsLegacy = FALSE;\r
}\r
\r
InsertTailList (&DriverOptionMenu.Head, &NewMenuEntry->Link);\r
+ FreePool (LoadOptionFromVar);\r
\r
}\r
\r
if (DriverOrderList != NULL) {\r
FreePool (DriverOrderList);\r
}\r
- FreePool(LoadOption);\r
+\r
DriverOptionMenu.MenuNumber = Index;\r
return EFI_SUCCESS;\r
\r
@retval FALSE Not exit caller function.\r
**/\r
BOOLEAN \r
+EFIAPI\r
BootFromFile (\r
IN EFI_DEVICE_PATH_PROTOCOL *FilePath\r
)\r
EFI_BOOT_MANAGER_LOAD_OPTION BootOption;\r
CHAR16 *FileName;\r
\r
+ FileName = NULL;\r
+\r
FileName = ExtractFileNameFromDevicePath(FilePath);\r
- EfiBootManagerInitializeLoadOption (\r
- &BootOption,\r
- 0,\r
- LoadOptionTypeBoot,\r
- LOAD_OPTION_ACTIVE,\r
- FileName,\r
- FilePath,\r
- NULL,\r
- 0\r
- );\r
- //\r
- // Since current no boot from removable media directly is allowed */\r
- //\r
- gST->ConOut->ClearScreen (gST->ConOut);\r
+ if (FileName != NULL) {\r
+ EfiBootManagerInitializeLoadOption (\r
+ &BootOption,\r
+ 0,\r
+ LoadOptionTypeBoot,\r
+ LOAD_OPTION_ACTIVE,\r
+ FileName,\r
+ FilePath,\r
+ NULL,\r
+ 0\r
+ );\r
+ //\r
+ // Since current no boot from removable media directly is allowed */\r
+ //\r
+ gST->ConOut->ClearScreen (gST->ConOut);\r
\r
- BmmBdsSetConsoleMode (FALSE);\r
- EfiBootManagerBoot (&BootOption);\r
- BmmBdsSetConsoleMode (TRUE);\r
+ BmmSetConsoleMode (FALSE);\r
+ EfiBootManagerBoot (&BootOption);\r
+ BmmSetConsoleMode (TRUE);\r
\r
- FreePool(FileName);\r
+ FreePool(FileName);\r
\r
- EfiBootManagerFreeLoadOption (&BootOption);\r
+ EfiBootManagerFreeLoadOption (&BootOption);\r
+ }\r
\r
return FALSE;\r
}\r
@retval FALSE Not exit caller function.\r
**/\r
BOOLEAN \r
+EFIAPI\r
CreateBootOptionFromFile (\r
IN EFI_DEVICE_PATH_PROTOCOL *FilePath\r
)\r
\r
**/\r
BOOLEAN \r
+EFIAPI\r
CreateDriverOptionFromFile (\r
IN EFI_DEVICE_PATH_PROTOCOL *FilePath\r
)\r