return EFI_SUCCESS;\r
}\r
\r
-/**\r
- Update the device path of "ConOut", "ConIn" and "ErrOut" \r
- based on the new BaudRate, Data Bits, parity and Stop Bits\r
- set.\r
-\r
-**/\r
-VOID\r
-Var_UpdateAllConsoleOption (\r
- VOID\r
- )\r
-{\r
- EFI_DEVICE_PATH_PROTOCOL *OutDevicePath;\r
- EFI_DEVICE_PATH_PROTOCOL *InpDevicePath;\r
- EFI_DEVICE_PATH_PROTOCOL *ErrDevicePath;\r
- EFI_STATUS Status;\r
-\r
- GetEfiGlobalVariable2 (L"ConOut", (VOID**)&OutDevicePath, NULL);\r
- GetEfiGlobalVariable2 (L"ConIn", (VOID**)&InpDevicePath, NULL);\r
- GetEfiGlobalVariable2 (L"ErrOut", (VOID**)&ErrDevicePath, NULL);\r
- if (OutDevicePath != NULL) {\r
- ChangeVariableDevicePath (OutDevicePath);\r
- Status = gRT->SetVariable (\r
- L"ConOut",\r
- &gEfiGlobalVariableGuid,\r
- VAR_FLAG,\r
- GetDevicePathSize (OutDevicePath),\r
- OutDevicePath\r
- );\r
- ASSERT (!EFI_ERROR (Status));\r
- }\r
-\r
- if (InpDevicePath != NULL) {\r
- ChangeVariableDevicePath (InpDevicePath);\r
- Status = gRT->SetVariable (\r
- L"ConIn",\r
- &gEfiGlobalVariableGuid,\r
- VAR_FLAG,\r
- GetDevicePathSize (InpDevicePath),\r
- InpDevicePath\r
- );\r
- ASSERT (!EFI_ERROR (Status));\r
- }\r
-\r
- if (ErrDevicePath != NULL) {\r
- ChangeVariableDevicePath (ErrDevicePath);\r
- Status = gRT->SetVariable (\r
- L"ErrOut",\r
- &gEfiGlobalVariableGuid,\r
- VAR_FLAG,\r
- GetDevicePathSize (ErrDevicePath),\r
- ErrDevicePath\r
- );\r
- ASSERT (!EFI_ERROR (Status));\r
- }\r
-}\r
-\r
/**\r
This function delete and build multi-instance device path for\r
specified type of console device.\r
@param OptionalData The optional load option.\r
@param ForceReconnect If to force reconnect.\r
\r
- @retval EFI_OUT_OF_RESOURCES If not enought memory to complete the operation.\r
+ @retval other Contain some errors when excuting this function.See function\r
+ EfiBootManagerInitializeLoadOption/EfiBootManagerAddLoadOptionVariabl\r
+ for detail return information.\r
@retval EFI_SUCCESS If function completes successfully.\r
\r
**/\r
OptionalDesData,\r
OptionalDataSize\r
);\r
- if (!EFI_ERROR (Status)){\r
- Status = EfiBootManagerAddLoadOptionVariable (&LoadOption,(UINTN) -1 );\r
+ if (EFI_ERROR (Status)){\r
+ return Status;\r
+ }\r
+\r
+ Status = EfiBootManagerAddLoadOptionVariable (&LoadOption,(UINTN) -1 );\r
+ if (EFI_ERROR (Status)) {\r
+ EfiBootManagerFreeLoadOption(&LoadOption);\r
+ return Status;\r
}\r
\r
NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;\r
\r
if (OptionalDataExist) {\r
NewLoadContext->OptionalData = AllocateZeroPool (LoadOption.OptionalDataSize);\r
+ ASSERT (NewLoadContext->OptionalData != NULL);\r
CopyMem (\r
NewLoadContext->OptionalData,\r
LoadOption.OptionalData,\r
\r
@param CallbackData The BMM context data.\r
\r
- @retval EFI_OUT_OF_RESOURCES If not enought memory to complete the operation.\r
+ @retval other Contain some errors when excuting this function. See function\r
+ EfiBootManagerInitializeLoadOption/EfiBootManagerAddLoadOptionVariabl\r
+ for detail return information.\r
@retval EFI_SUCCESS If function completes successfully.\r
\r
**/\r
OptionalData,\r
OptionalDataSize\r
);\r
- if (!EFI_ERROR (Status)){\r
- Status = EfiBootManagerAddLoadOptionVariable (&LoadOption,(UINTN) -1 );\r
+ if (EFI_ERROR (Status)){\r
+ return Status;\r
+ }\r
+\r
+ Status = EfiBootManagerAddLoadOptionVariable (&LoadOption,(UINTN) -1 );\r
+ if (EFI_ERROR (Status)) {\r
+ EfiBootManagerFreeLoadOption(&LoadOption);\r
+ return Status;\r
}\r
\r
NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;\r
\r
if (OptionalDataExist) {\r
NewLoadContext->OptionalData = AllocateZeroPool (LoadOption.OptionalDataSize);\r
+ ASSERT (NewLoadContext->OptionalData != NULL);\r
CopyMem (\r
NewLoadContext->OptionalData,\r
LoadOption.OptionalData,\r