mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-31 01:24:12 +02:00
Clean up BootMaint module in BdsDxe.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5444 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
2ab6330e7e
commit
dce655e8bf
@ -77,6 +77,10 @@
|
|||||||
[Packages]
|
[Packages]
|
||||||
MdePkg/MdePkg.dec
|
MdePkg/MdePkg.dec
|
||||||
MdeModulePkg/MdeModulePkg.dec
|
MdeModulePkg/MdeModulePkg.dec
|
||||||
|
#
|
||||||
|
#This dependency is because of gEfiLegacyBiosProtocolGuid and gEfiDataHubProtocolGuid. It may be removed if a Library class is created to
|
||||||
|
#abstract away definition in Framework specification or PI spec incorporates the Legacy Booting Protocols and Data Hub Protocols.
|
||||||
|
#
|
||||||
IntelFrameworkPkg/IntelFrameworkPkg.dec
|
IntelFrameworkPkg/IntelFrameworkPkg.dec
|
||||||
|
|
||||||
|
|
||||||
@ -120,7 +124,6 @@
|
|||||||
gEfiHiiStringProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
gEfiHiiStringProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||||
gEfiSimpleFileSystemProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
gEfiSimpleFileSystemProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||||
gEfiLoadFileProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
gEfiLoadFileProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||||
gEfiCpuIoProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
|
||||||
gEfiBdsArchProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
gEfiBdsArchProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||||
gEfiDataHubProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
gEfiDataHubProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||||
gEfiGenericMemTestProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
gEfiGenericMemTestProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||||
@ -136,7 +139,6 @@
|
|||||||
gEfiFormBrowser2ProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
gEfiFormBrowser2ProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||||
gEfiSerialIoProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
gEfiSerialIoProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||||
gEfiDevicePathProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
gEfiDevicePathProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||||
gEfiAcpiS3SaveProtocolGuid
|
|
||||||
|
|
||||||
[FeaturePcd.common]
|
[FeaturePcd.common]
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLangDepricate
|
gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLangDepricate
|
||||||
|
@ -16,13 +16,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
|
|
||||||
#include "BBSsupport.h"
|
#include "BBSsupport.h"
|
||||||
|
|
||||||
EFI_DEVICE_PATH_PROTOCOL EndDevicePath[] = {
|
|
||||||
END_DEVICE_PATH_TYPE,
|
|
||||||
END_ENTIRE_DEVICE_PATH_SUBTYPE,
|
|
||||||
END_DEVICE_PATH_LENGTH,
|
|
||||||
0
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
||||||
Translate the first n characters of an Ascii string to
|
Translate the first n characters of an Ascii string to
|
||||||
@ -291,7 +284,7 @@ BdsCreateLegacyBootOption (
|
|||||||
//
|
//
|
||||||
UnicodeToAscii (BootDesc, StrSize (BootDesc), HelpString);
|
UnicodeToAscii (BootDesc, StrSize (BootDesc), HelpString);
|
||||||
StringLen = AsciiStrLen (HelpString);
|
StringLen = AsciiStrLen (HelpString);
|
||||||
NewBbsDevPathNode = EfiAllocateZeroPool (sizeof (BBS_BBS_DEVICE_PATH) + StringLen);
|
NewBbsDevPathNode = AllocateZeroPool (sizeof (BBS_BBS_DEVICE_PATH) + StringLen);
|
||||||
if (NewBbsDevPathNode == NULL) {
|
if (NewBbsDevPathNode == NULL) {
|
||||||
return EFI_OUT_OF_RESOURCES;
|
return EFI_OUT_OF_RESOURCES;
|
||||||
}
|
}
|
||||||
@ -320,7 +313,7 @@ BdsCreateLegacyBootOption (
|
|||||||
sizeof (BBS_TABLE) +
|
sizeof (BBS_TABLE) +
|
||||||
sizeof (UINT16);
|
sizeof (UINT16);
|
||||||
|
|
||||||
Buffer = EfiAllocateZeroPool (BufferSize);
|
Buffer = AllocateZeroPool (BufferSize);
|
||||||
if (Buffer == NULL) {
|
if (Buffer == NULL) {
|
||||||
FreePool (NewBbsDevPathNode);
|
FreePool (NewBbsDevPathNode);
|
||||||
FreePool (CurrentBbsDevPath);
|
FreePool (CurrentBbsDevPath);
|
||||||
@ -369,7 +362,7 @@ BdsCreateLegacyBootOption (
|
|||||||
SafeFreePool (Buffer);
|
SafeFreePool (Buffer);
|
||||||
Buffer = NULL;
|
Buffer = NULL;
|
||||||
|
|
||||||
NewBootOrderList = EfiAllocateZeroPool (*BootOrderListSize + sizeof (UINT16));
|
NewBootOrderList = AllocateZeroPool (*BootOrderListSize + sizeof (UINT16));
|
||||||
if (NULL == NewBootOrderList) {
|
if (NULL == NewBootOrderList) {
|
||||||
FreePool (NewBbsDevPathNode);
|
FreePool (NewBbsDevPathNode);
|
||||||
FreePool (CurrentBbsDevPath);
|
FreePool (CurrentBbsDevPath);
|
||||||
@ -963,7 +956,7 @@ BdsCreateDevOrder (
|
|||||||
TotalSize += (HeaderSize + sizeof (UINT16) * NETCount);
|
TotalSize += (HeaderSize + sizeof (UINT16) * NETCount);
|
||||||
TotalSize += (HeaderSize + sizeof (UINT16) * BEVCount);
|
TotalSize += (HeaderSize + sizeof (UINT16) * BEVCount);
|
||||||
|
|
||||||
DevOrder = EfiAllocateZeroPool (TotalSize);
|
DevOrder = AllocateZeroPool (TotalSize);
|
||||||
if (NULL == DevOrder) {
|
if (NULL == DevOrder) {
|
||||||
return EFI_OUT_OF_RESOURCES;
|
return EFI_OUT_OF_RESOURCES;
|
||||||
}
|
}
|
||||||
@ -1151,7 +1144,7 @@ BdsUpdateLegacyDevOrder (
|
|||||||
TotalSize += (HeaderSize + NETCount * sizeof (UINT16));
|
TotalSize += (HeaderSize + NETCount * sizeof (UINT16));
|
||||||
TotalSize += (HeaderSize + BEVCount * sizeof (UINT16));
|
TotalSize += (HeaderSize + BEVCount * sizeof (UINT16));
|
||||||
|
|
||||||
NewDevOrder = EfiAllocateZeroPool (TotalSize);
|
NewDevOrder = AllocateZeroPool (TotalSize);
|
||||||
if (NULL == NewDevOrder) {
|
if (NULL == NewDevOrder) {
|
||||||
return EFI_OUT_OF_RESOURCES;
|
return EFI_OUT_OF_RESOURCES;
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
//
|
//
|
||||||
// Bugbug: Candidate for a PCD entries
|
// Bugbug: Candidate for a PCD entries
|
||||||
//
|
//
|
||||||
|
#define MAX_BBS_ENTRIES 0x100
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
EDES_TODO: Add function description.
|
||||||
|
|
||||||
@ -30,8 +32,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
@return EDES_TODO: Add description for return value
|
@return EDES_TODO: Add description for return value
|
||||||
|
|
||||||
**/
|
**/
|
||||||
#define MAX_BBS_ENTRIES 0x100
|
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
BdsBuildLegacyDevNameString (
|
BdsBuildLegacyDevNameString (
|
||||||
IN BBS_TABLE *CurBBSEntry,
|
IN BBS_TABLE *CurBBSEntry,
|
||||||
|
@ -14,43 +14,14 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
|
|
||||||
#include "BootMaint.h"
|
#include "BootMaint.h"
|
||||||
|
|
||||||
/**
|
|
||||||
Wrap original AllocatePool gBS call
|
|
||||||
and ZeroMem gBS call into a single
|
|
||||||
function in order to decrease code length
|
|
||||||
|
|
||||||
|
|
||||||
@param Size The size to allocate
|
|
||||||
|
|
||||||
@return Valid pointer to the allocated buffer
|
|
||||||
@retval Null for failure
|
|
||||||
|
|
||||||
**/
|
|
||||||
VOID *
|
|
||||||
EfiAllocateZeroPool (
|
|
||||||
IN UINTN Size
|
|
||||||
)
|
|
||||||
{
|
|
||||||
EFI_STATUS Status;
|
|
||||||
VOID *Ptr;
|
|
||||||
Status = gBS->AllocatePool (EfiBootServicesData, Size, &Ptr);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
Ptr = NULL;
|
|
||||||
return Ptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
ZeroMem (Ptr, Size);
|
|
||||||
return Ptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
||||||
Find the first instance of this Protocol
|
Find the first instance of this Protocol
|
||||||
in the system and return it's interface
|
in the system and return it's interface
|
||||||
|
|
||||||
|
|
||||||
@param ProtocolGuid - Provides the protocol to search for
|
@param ProtocolGuid Provides the protocol to search for
|
||||||
@param Interface - On return, a pointer to the first interface
|
@param Interface On return, a pointer to the first interface
|
||||||
that matches ProtocolGuid
|
that matches ProtocolGuid
|
||||||
|
|
||||||
@retval EFI_SUCCESS A protocol instance matching ProtocolGuid was found
|
@retval EFI_SUCCESS A protocol instance matching ProtocolGuid was found
|
||||||
@ -131,6 +102,7 @@ EfiLibOpenRoot (
|
|||||||
|
|
||||||
@retval TRUE if the buffer was reallocated and the caller
|
@retval TRUE if the buffer was reallocated and the caller
|
||||||
should try the API again.
|
should try the API again.
|
||||||
|
@retval FALSE The caller should not call this function again.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
@ -156,7 +128,7 @@ EfiGrowBuffer (
|
|||||||
|
|
||||||
SafeFreePool (*Buffer);
|
SafeFreePool (*Buffer);
|
||||||
|
|
||||||
*Buffer = EfiAllocateZeroPool (BufferSize);
|
*Buffer = AllocateZeroPool (BufferSize);
|
||||||
|
|
||||||
if (*Buffer != NULL) {
|
if (*Buffer != NULL) {
|
||||||
TryAgain = TRUE;
|
TryAgain = TRUE;
|
||||||
@ -179,11 +151,12 @@ EfiGrowBuffer (
|
|||||||
Function returns the value of the specified variable.
|
Function returns the value of the specified variable.
|
||||||
|
|
||||||
|
|
||||||
@param Name - A Null-terminated Unicode string that is
|
@param Name A Null-terminated Unicode string that is
|
||||||
the name of the vendor's variable.
|
the name of the vendor's variable.
|
||||||
@param VendorGuid - A unique identifier for the vendor.
|
@param VendorGuid A unique identifier for the vendor.
|
||||||
|
|
||||||
@return The payload of the variable.
|
@return The payload of the variable.
|
||||||
|
@retval NULL If the variable can't be read.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID *
|
VOID *
|
||||||
@ -244,7 +217,8 @@ EfiLibDeleteVariable (
|
|||||||
|
|
||||||
@param FHand The file handle.
|
@param FHand The file handle.
|
||||||
|
|
||||||
@return A pointer to a buffer with file information or NULL is returned
|
@return A pointer to a buffer with file information.
|
||||||
|
@retval NULL is returned if failed to get Vaolume Label Info.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_FILE_SYSTEM_VOLUME_LABEL_INFO *
|
EFI_FILE_SYSTEM_VOLUME_LABEL_INFO *
|
||||||
@ -282,7 +256,7 @@ EfiLibFileSystemVolumeLabelInfo (
|
|||||||
@param Src The source.
|
@param Src The source.
|
||||||
|
|
||||||
@return A new string which is duplicated copy of the source.
|
@return A new string which is duplicated copy of the source.
|
||||||
@retval NULL If there is not enought memory.
|
@retval NULL If there is not enough memory.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
CHAR16 *
|
CHAR16 *
|
||||||
@ -294,7 +268,7 @@ EfiStrDuplicate (
|
|||||||
UINTN Size;
|
UINTN Size;
|
||||||
|
|
||||||
Size = StrSize (Src);
|
Size = StrSize (Src);
|
||||||
Dest = EfiAllocateZeroPool (Size);
|
Dest = AllocateZeroPool (Size);
|
||||||
ASSERT (Dest != NULL);
|
ASSERT (Dest != NULL);
|
||||||
if (Dest != NULL) {
|
if (Dest != NULL) {
|
||||||
CopyMem (Dest, Src, Size);
|
CopyMem (Dest, Src, Size);
|
||||||
@ -348,7 +322,7 @@ EfiLibFileInfo (
|
|||||||
that exist in a device path.
|
that exist in a device path.
|
||||||
|
|
||||||
|
|
||||||
@param DevicePath - A pointer to a device path data structure.
|
@param DevicePath A pointer to a device path data structure.
|
||||||
|
|
||||||
@return This function counts and returns the number of device path instances
|
@return This function counts and returns the number of device path instances
|
||||||
in DevicePath.
|
in DevicePath.
|
||||||
@ -378,9 +352,8 @@ EfiDevicePathInstanceCount (
|
|||||||
@param OldSize - The size of the current buffer.
|
@param OldSize - The size of the current buffer.
|
||||||
@param NewSize - The size of the new buffer.
|
@param NewSize - The size of the new buffer.
|
||||||
|
|
||||||
@retval EFI_SUCEESS The requested number of bytes were allocated.
|
@return The newly allocated buffer.
|
||||||
@retval EFI_OUT_OF_RESOURCES The pool requested could not be allocated.
|
@retval NULL Allocation failed.
|
||||||
@retval EFI_INVALID_PARAMETER The buffer was invalid.
|
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID *
|
VOID *
|
||||||
@ -394,7 +367,7 @@ EfiReallocatePool (
|
|||||||
|
|
||||||
NewPool = NULL;
|
NewPool = NULL;
|
||||||
if (NewSize != 0) {
|
if (NewSize != 0) {
|
||||||
NewPool = EfiAllocateZeroPool (NewSize);
|
NewPool = AllocateZeroPool (NewSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (OldPool != NULL) {
|
if (OldPool != NULL) {
|
||||||
@ -450,6 +423,7 @@ TimeCompare (
|
|||||||
|
|
||||||
@return A string located from the Data Hub records based on
|
@return A string located from the Data Hub records based on
|
||||||
the device path.
|
the device path.
|
||||||
|
@retval NULL If failed to get the String from Data Hub.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
UINT16 *
|
UINT16 *
|
||||||
|
@ -17,6 +17,14 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
#include "Bds.h"
|
#include "Bds.h"
|
||||||
#include "FrontPage.h"
|
#include "FrontPage.h"
|
||||||
|
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL EndDevicePath[] = {
|
||||||
|
END_DEVICE_PATH_TYPE,
|
||||||
|
END_ENTIRE_DEVICE_PATH_SUBTYPE,
|
||||||
|
END_DEVICE_PATH_LENGTH,
|
||||||
|
0
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
EFI_GUID EfiLegacyDevOrderGuid = EFI_LEGACY_DEV_ORDER_VARIABLE_GUID;
|
EFI_GUID EfiLegacyDevOrderGuid = EFI_LEGACY_DEV_ORDER_VARIABLE_GUID;
|
||||||
EFI_GUID mBootMaintGuid = BOOT_MAINT_FORMSET_GUID;
|
EFI_GUID mBootMaintGuid = BOOT_MAINT_FORMSET_GUID;
|
||||||
EFI_GUID mFileExplorerGuid = FILE_EXPLORE_FORMSET_GUID;
|
EFI_GUID mFileExplorerGuid = FILE_EXPLORE_FORMSET_GUID;
|
||||||
@ -54,9 +62,9 @@ FreeAllMenu (
|
|||||||
Create string tokens for a menu from its help strings and display strings
|
Create string tokens for a menu from its help strings and display strings
|
||||||
|
|
||||||
|
|
||||||
@param CallbackData EDES_TODO: Add parameter description
|
@param CallbackData The BMM context data.
|
||||||
@param HiiHandle - Hii Handle of the package to be updated.
|
@param HiiHandle Hii Handle of the package to be updated.
|
||||||
@param MenuOption - The Menu whose string tokens need to be created
|
@param MenuOption The Menu whose string tokens need to be created
|
||||||
|
|
||||||
@retval EFI_SUCCESS string tokens created successfully
|
@retval EFI_SUCCESS string tokens created successfully
|
||||||
@retval others contain some errors
|
@retval others contain some errors
|
||||||
@ -723,12 +731,13 @@ Error:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Discard all changes done to the BMM pages such as Boot Order change,
|
||||||
|
Driver order change.
|
||||||
|
|
||||||
@param Private EDES_TODO: Add parameter description
|
@param Private The BMM context data.
|
||||||
@param CurrentFakeNVMap EDES_TODO: Add parameter description
|
@param CurrentFakeNVMap The current Fack NV Map.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -803,7 +812,7 @@ InitializeBM (
|
|||||||
//
|
//
|
||||||
// Create CallbackData structures for Driver Callback
|
// Create CallbackData structures for Driver Callback
|
||||||
//
|
//
|
||||||
BmmCallbackInfo = EfiAllocateZeroPool (sizeof (BMM_CALLBACK_DATA));
|
BmmCallbackInfo = AllocateZeroPool (sizeof (BMM_CALLBACK_DATA));
|
||||||
if (BmmCallbackInfo == NULL) {
|
if (BmmCallbackInfo == NULL) {
|
||||||
return EFI_OUT_OF_RESOURCES;
|
return EFI_OUT_OF_RESOURCES;
|
||||||
}
|
}
|
||||||
@ -811,7 +820,7 @@ InitializeBM (
|
|||||||
//
|
//
|
||||||
// Create LoadOption in BmmCallbackInfo for Driver Callback
|
// Create LoadOption in BmmCallbackInfo for Driver Callback
|
||||||
//
|
//
|
||||||
Ptr = EfiAllocateZeroPool (sizeof (BM_LOAD_CONTEXT) + sizeof (BM_FILE_CONTEXT) + sizeof (BM_HANDLE_CONTEXT) + sizeof (BM_MENU_ENTRY));
|
Ptr = AllocateZeroPool (sizeof (BM_LOAD_CONTEXT) + sizeof (BM_FILE_CONTEXT) + sizeof (BM_HANDLE_CONTEXT) + sizeof (BM_MENU_ENTRY));
|
||||||
if (Ptr == NULL) {
|
if (Ptr == NULL) {
|
||||||
SafeFreePool (BmmCallbackInfo);
|
SafeFreePool (BmmCallbackInfo);
|
||||||
return EFI_OUT_OF_RESOURCES;
|
return EFI_OUT_OF_RESOURCES;
|
||||||
@ -917,7 +926,7 @@ InitializeBM (
|
|||||||
// Allocate space for creation of Buffer
|
// Allocate space for creation of Buffer
|
||||||
//
|
//
|
||||||
gUpdateData.BufferSize = UPDATE_DATA_SIZE;
|
gUpdateData.BufferSize = UPDATE_DATA_SIZE;
|
||||||
gUpdateData.Data = EfiAllocateZeroPool (UPDATE_DATA_SIZE);
|
gUpdateData.Data = AllocateZeroPool (UPDATE_DATA_SIZE);
|
||||||
if (gUpdateData.Data == NULL) {
|
if (gUpdateData.Data == NULL) {
|
||||||
SafeFreePool (BmmCallbackInfo->LoadContext);
|
SafeFreePool (BmmCallbackInfo->LoadContext);
|
||||||
SafeFreePool (BmmCallbackInfo);
|
SafeFreePool (BmmCallbackInfo);
|
||||||
@ -1031,11 +1040,11 @@ InitializeBM (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Initialized all Menu Option List.
|
||||||
|
|
||||||
@param CallbackData EDES_TODO: Add parameter description
|
@param CallbackData The BMM context data.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -1060,11 +1069,11 @@ InitAllMenu (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Free up all Menu Option list.
|
||||||
|
|
||||||
@param VOID EDES_TODO: Add parameter description
|
@param VOID
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -1085,9 +1094,9 @@ FreeAllMenu (
|
|||||||
Intialize all the string depositories.
|
Intialize all the string depositories.
|
||||||
|
|
||||||
|
|
||||||
@param VOID EDES_TODO: Add parameter description
|
@param VOID
|
||||||
|
|
||||||
EDES_TODO: Description incomplete None.
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -1096,7 +1105,7 @@ InitializeStringDepository (
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
STRING_DEPOSITORY *StringDepository;
|
STRING_DEPOSITORY *StringDepository;
|
||||||
StringDepository = EfiAllocateZeroPool (sizeof (STRING_DEPOSITORY) * STRING_DEPOSITORY_NUMBER);
|
StringDepository = AllocateZeroPool (sizeof (STRING_DEPOSITORY) * STRING_DEPOSITORY_NUMBER);
|
||||||
FileOptionStrDepository = StringDepository++;
|
FileOptionStrDepository = StringDepository++;
|
||||||
ConsoleOptionStrDepository = StringDepository++;
|
ConsoleOptionStrDepository = StringDepository++;
|
||||||
BootOptionStrDepository = StringDepository++;
|
BootOptionStrDepository = StringDepository++;
|
||||||
@ -1136,7 +1145,7 @@ GetStringTokenFromDepository (
|
|||||||
//
|
//
|
||||||
// If there is no usable node in the list, update the list.
|
// If there is no usable node in the list, update the list.
|
||||||
//
|
//
|
||||||
NextListNode = EfiAllocateZeroPool (sizeof (STRING_LIST_NODE));
|
NextListNode = AllocateZeroPool (sizeof (STRING_LIST_NODE));
|
||||||
|
|
||||||
HiiLibNewString (CallbackData->BmmHiiHandle, &(NextListNode->StringToken), L" ");
|
HiiLibNewString (CallbackData->BmmHiiHandle, &(NextListNode->StringToken), L" ");
|
||||||
ASSERT (NextListNode->StringToken != 0);
|
ASSERT (NextListNode->StringToken != 0);
|
||||||
@ -1159,9 +1168,9 @@ GetStringTokenFromDepository (
|
|||||||
Reclaim string depositories by moving the current node pointer to list head..
|
Reclaim string depositories by moving the current node pointer to list head..
|
||||||
|
|
||||||
|
|
||||||
@param VOID EDES_TODO: Add parameter description
|
@param VOID
|
||||||
|
|
||||||
EDES_TODO: Description incomplete None.
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -1183,9 +1192,9 @@ ReclaimStringDepository (
|
|||||||
Release resource for all the string depositories.
|
Release resource for all the string depositories.
|
||||||
|
|
||||||
|
|
||||||
@param VOID EDES_TODO: Add parameter description
|
@param VOID
|
||||||
|
|
||||||
EDES_TODO: Description incomplete None.
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -1223,9 +1232,10 @@ CleanUpStringDepository (
|
|||||||
Start boot maintenance manager
|
Start boot maintenance manager
|
||||||
|
|
||||||
|
|
||||||
@param VOID EDES_TODO: Add parameter description
|
@param VOID
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@retval EFI_SUCCESS If BMM is invoked successfully.
|
||||||
|
@return Other value if BMM return unsuccessfully.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
@ -1272,9 +1282,11 @@ BdsStartBootMaint (
|
|||||||
Dispatch BMM formset and FileExplorer formset.
|
Dispatch BMM formset and FileExplorer formset.
|
||||||
|
|
||||||
|
|
||||||
@param CallbackData EDES_TODO: Add parameter description
|
@param CallbackData The BMM context data.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@retval EFI_SUCCESS If function complete successfully.
|
||||||
|
@retturn Other value if the Setup Browser process BMM's pages and
|
||||||
|
return unsuccessfully.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
@ -1335,3 +1347,58 @@ FormSetDispatcher (
|
|||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Deletete the Boot Option from EFI Variable. The Boot Order Arrray
|
||||||
|
is also updated.
|
||||||
|
|
||||||
|
@param OptionNumber EDES_TODO: Add parameter description
|
||||||
|
@param BootOrder The Boot Order array.
|
||||||
|
@param BootOrderSize The size of the Boot Order Array.
|
||||||
|
|
||||||
|
@return Other value if the Boot Option specified by OptionNumber is not deleteed succesfully.
|
||||||
|
@retval EFI_SUCCESS If function return successfully.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
BdsDeleteBootOption (
|
||||||
|
IN UINTN OptionNumber,
|
||||||
|
IN OUT UINT16 *BootOrder,
|
||||||
|
IN OUT UINTN *BootOrderSize
|
||||||
|
)
|
||||||
|
{
|
||||||
|
UINT16 BootOption[100];
|
||||||
|
UINTN Index;
|
||||||
|
EFI_STATUS Status;
|
||||||
|
UINTN Index2Del;
|
||||||
|
|
||||||
|
Status = EFI_SUCCESS;
|
||||||
|
Index2Del = 0;
|
||||||
|
|
||||||
|
UnicodeSPrint (BootOption, sizeof (BootOption), L"Boot%04x", OptionNumber);
|
||||||
|
Status = EfiLibDeleteVariable (BootOption, &gEfiGlobalVariableGuid);
|
||||||
|
//
|
||||||
|
// adjust boot order array
|
||||||
|
//
|
||||||
|
for (Index = 0; Index < *BootOrderSize / sizeof (UINT16); Index++) {
|
||||||
|
if (BootOrder[Index] == OptionNumber) {
|
||||||
|
Index2Del = Index;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Index != *BootOrderSize / sizeof (UINT16)) {
|
||||||
|
for (Index = 0; Index < *BootOrderSize / sizeof (UINT16) - 1; Index++) {
|
||||||
|
if (Index >= Index2Del) {
|
||||||
|
BootOrder[Index] = BootOrder[Index + 1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
*BootOrderSize -= sizeof (UINT16);
|
||||||
|
}
|
||||||
|
|
||||||
|
return Status;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -20,15 +20,13 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
#include "BBSsupport.h"
|
#include "BBSsupport.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Create a menu entry give a Menu type.
|
||||||
|
|
||||||
@param MenuType Use this parameter to identify current
|
@param MenuType The Menu type to be created.
|
||||||
Menu type
|
|
||||||
|
|
||||||
EDES_TODO: Incomplete Descriptions NULL Cannot allocate memory for current menu
|
|
||||||
EDES_TODO: Incomplete Descriptions entry
|
@retval NULL If failed to create the menu.
|
||||||
EDES_TODO: Incomplete Descriptions Others A valid pointer pointing to the allocated
|
@return The menu.
|
||||||
EDES_TODO: Incomplete Descriptions memory pool for current menu entry
|
|
||||||
|
|
||||||
**/
|
**/
|
||||||
BM_MENU_ENTRY *
|
BM_MENU_ENTRY *
|
||||||
@ -74,12 +72,12 @@ BOpt_CreateMenuEntry (
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuEntry = EfiAllocateZeroPool (sizeof (BM_MENU_ENTRY));
|
MenuEntry = AllocateZeroPool (sizeof (BM_MENU_ENTRY));
|
||||||
if (NULL == MenuEntry) {
|
if (NULL == MenuEntry) {
|
||||||
return MenuEntry;
|
return MenuEntry;
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuEntry->VariableContext = EfiAllocateZeroPool (ContextSize);
|
MenuEntry->VariableContext = AllocateZeroPool (ContextSize);
|
||||||
if (NULL == MenuEntry->VariableContext) {
|
if (NULL == MenuEntry->VariableContext) {
|
||||||
SafeFreePool (MenuEntry);
|
SafeFreePool (MenuEntry);
|
||||||
MenuEntry = NULL;
|
MenuEntry = NULL;
|
||||||
@ -92,11 +90,11 @@ BOpt_CreateMenuEntry (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Free up all resource allocated for a BM_MENU_ENTRY.
|
||||||
|
|
||||||
@param MenuEntry EDES_TODO: Add parameter description
|
@param MenuEntry A pointer to BM_MENU_ENTRY.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@retval VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -173,12 +171,15 @@ BOpt_DestroyMenuEntry (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Get the Menu Entry from the list in Menu Entry List.
|
||||||
|
|
||||||
@param MenuOption EDES_TODO: Add parameter description
|
If MenuNumber is great or equal to the number of Menu
|
||||||
@param MenuNumber EDES_TODO: Add parameter description
|
Entry in the list, then ASSERT.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@param MenuOption The Menu Entry List to read the menu entry.
|
||||||
|
@param MenuNumber The index of Menu Entry.
|
||||||
|
|
||||||
|
@return The Menu Entry.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
BM_MENU_ENTRY *
|
BM_MENU_ENTRY *
|
||||||
@ -191,9 +192,7 @@ BOpt_GetMenuEntry (
|
|||||||
UINTN Index;
|
UINTN Index;
|
||||||
LIST_ENTRY *List;
|
LIST_ENTRY *List;
|
||||||
|
|
||||||
if (MenuNumber >= MenuOption->MenuNumber) {
|
ASSERT (MenuNumber < MenuOption->MenuNumber);
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
List = MenuOption->Head.ForwardLink;
|
List = MenuOption->Head.ForwardLink;
|
||||||
for (Index = 0; Index < MenuNumber; Index++) {
|
for (Index = 0; Index < MenuNumber; Index++) {
|
||||||
@ -206,7 +205,10 @@ BOpt_GetMenuEntry (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
This function build the FsOptionMenu list which records all
|
||||||
|
available file system in the system. They includes all instances
|
||||||
|
of EFI_SIMPLE_FILE_SYSTEM_PROTOCOL, all instances of EFI_LOAD_FILE_SYSTEM
|
||||||
|
and all type of legacy boot device.
|
||||||
|
|
||||||
@param CallbackData BMM context data
|
@param CallbackData BMM context data
|
||||||
|
|
||||||
@ -273,7 +275,7 @@ BOpt_FindFileSystem (
|
|||||||
// Issue a dummy read to trigger reinstall of BlockIo protocol for removable media
|
// Issue a dummy read to trigger reinstall of BlockIo protocol for removable media
|
||||||
//
|
//
|
||||||
if (BlkIo->Media->RemovableMedia) {
|
if (BlkIo->Media->RemovableMedia) {
|
||||||
Buffer = EfiAllocateZeroPool (BlkIo->Media->BlockSize);
|
Buffer = AllocateZeroPool (BlkIo->Media->BlockSize);
|
||||||
if (NULL == Buffer) {
|
if (NULL == Buffer) {
|
||||||
SafeFreePool (BlkIoHandle);
|
SafeFreePool (BlkIoHandle);
|
||||||
return EFI_OUT_OF_RESOURCES;
|
return EFI_OUT_OF_RESOURCES;
|
||||||
@ -372,7 +374,7 @@ BOpt_FindFileSystem (
|
|||||||
}
|
}
|
||||||
|
|
||||||
TempStr = MenuEntry->HelpString;
|
TempStr = MenuEntry->HelpString;
|
||||||
MenuEntry->DisplayString = EfiAllocateZeroPool (MAX_CHAR);
|
MenuEntry->DisplayString = AllocateZeroPool (MAX_CHAR);
|
||||||
ASSERT (MenuEntry->DisplayString != NULL);
|
ASSERT (MenuEntry->DisplayString != NULL);
|
||||||
UnicodeSPrint (
|
UnicodeSPrint (
|
||||||
MenuEntry->DisplayString,
|
MenuEntry->DisplayString,
|
||||||
@ -419,7 +421,7 @@ BOpt_FindFileSystem (
|
|||||||
MenuEntry->HelpString = DevicePathToStr (FileContext->DevicePath);
|
MenuEntry->HelpString = DevicePathToStr (FileContext->DevicePath);
|
||||||
|
|
||||||
TempStr = MenuEntry->HelpString;
|
TempStr = MenuEntry->HelpString;
|
||||||
MenuEntry->DisplayString = EfiAllocateZeroPool (MAX_CHAR);
|
MenuEntry->DisplayString = AllocateZeroPool (MAX_CHAR);
|
||||||
ASSERT (MenuEntry->DisplayString != NULL);
|
ASSERT (MenuEntry->DisplayString != NULL);
|
||||||
UnicodeSPrint (
|
UnicodeSPrint (
|
||||||
MenuEntry->DisplayString,
|
MenuEntry->DisplayString,
|
||||||
@ -478,7 +480,7 @@ BOpt_FindFileSystem (
|
|||||||
MenuEntry->HelpString = DevicePathToStr (FileContext->DevicePath);
|
MenuEntry->HelpString = DevicePathToStr (FileContext->DevicePath);
|
||||||
|
|
||||||
TempStr = MenuEntry->HelpString;
|
TempStr = MenuEntry->HelpString;
|
||||||
MenuEntry->DisplayString = EfiAllocateZeroPool (MAX_CHAR);
|
MenuEntry->DisplayString = AllocateZeroPool (MAX_CHAR);
|
||||||
ASSERT (MenuEntry->DisplayString != NULL);
|
ASSERT (MenuEntry->DisplayString != NULL);
|
||||||
UnicodeSPrint (
|
UnicodeSPrint (
|
||||||
MenuEntry->DisplayString,
|
MenuEntry->DisplayString,
|
||||||
@ -498,22 +500,18 @@ BOpt_FindFileSystem (
|
|||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Free resources allocated in Allocate Rountine
|
||||||
|
|
||||||
|
@param FreeMenu Menu to be freed
|
||||||
|
|
||||||
|
@return VOID
|
||||||
|
|
||||||
|
**/
|
||||||
VOID
|
VOID
|
||||||
BOpt_FreeMenu (
|
BOpt_FreeMenu (
|
||||||
BM_MENU_OPTION *FreeMenu
|
BM_MENU_OPTION *FreeMenu
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description
|
|
||||||
Free resources allocated in Allocate Rountine
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
FreeMenu Menu to be freed
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
VOID
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
BM_MENU_ENTRY *MenuEntry;
|
BM_MENU_ENTRY *MenuEntry;
|
||||||
while (!IsListEmpty (&FreeMenu->Head)) {
|
while (!IsListEmpty (&FreeMenu->Head)) {
|
||||||
@ -528,26 +526,22 @@ Returns:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Find files under current directory
|
||||||
|
All files and sub-directories in current directory
|
||||||
|
will be stored in DirectoryMenu for future use.
|
||||||
|
|
||||||
|
@param FileOption Pointer for Dir to explore.
|
||||||
|
|
||||||
|
@retval TRUE Get files from current dir successfully.
|
||||||
|
@retval FALSE Can't get files from current dir.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
BOpt_FindFiles (
|
BOpt_FindFiles (
|
||||||
IN BMM_CALLBACK_DATA *CallbackData,
|
IN BMM_CALLBACK_DATA *CallbackData,
|
||||||
IN BM_MENU_ENTRY *MenuEntry
|
IN BM_MENU_ENTRY *MenuEntry
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description
|
|
||||||
Find files under current directory
|
|
||||||
All files and sub-directories in current directory
|
|
||||||
will be stored in DirectoryMenu for future use.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
FileOption -- Pointer for Dir to explore
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
TRUE -- Get files from current dir successfully
|
|
||||||
FALSE -- Can't get files from current dir
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
EFI_FILE_HANDLE NewDir;
|
EFI_FILE_HANDLE NewDir;
|
||||||
EFI_FILE_HANDLE Dir;
|
EFI_FILE_HANDLE Dir;
|
||||||
@ -597,7 +591,7 @@ Returns:
|
|||||||
);
|
);
|
||||||
|
|
||||||
DirBufferSize = sizeof (EFI_FILE_INFO) + 1024;
|
DirBufferSize = sizeof (EFI_FILE_INFO) + 1024;
|
||||||
DirInfo = EfiAllocateZeroPool (DirBufferSize);
|
DirInfo = AllocateZeroPool (DirBufferSize);
|
||||||
if (DirInfo == NULL) {
|
if (DirInfo == NULL) {
|
||||||
return EFI_OUT_OF_RESOURCES;
|
return EFI_OUT_OF_RESOURCES;
|
||||||
}
|
}
|
||||||
@ -659,7 +653,7 @@ Returns:
|
|||||||
|
|
||||||
if (NewFileContext->IsDir) {
|
if (NewFileContext->IsDir) {
|
||||||
BufferSize = StrLen (DirInfo->FileName) * 2 + 6;
|
BufferSize = StrLen (DirInfo->FileName) * 2 + 6;
|
||||||
NewMenuEntry->DisplayString = EfiAllocateZeroPool (BufferSize);
|
NewMenuEntry->DisplayString = AllocateZeroPool (BufferSize);
|
||||||
|
|
||||||
UnicodeSPrint (
|
UnicodeSPrint (
|
||||||
NewMenuEntry->DisplayString,
|
NewMenuEntry->DisplayString,
|
||||||
@ -687,22 +681,19 @@ Returns:
|
|||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Build the LegacyFDMenu LegacyHDMenu LegacyCDMenu according to LegacyBios.GetBbsInfo().
|
||||||
|
|
||||||
|
@param VOID
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The function complete successfully.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES No enough memory to complete this function.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
BOpt_GetLegacyOptions (
|
BOpt_GetLegacyOptions (
|
||||||
VOID
|
VOID
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Build the LegacyFDMenu LegacyHDMenu LegacyCDMenu according to LegacyBios.GetBbsInfo().
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
None
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
The device info of legacy device.
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
BM_MENU_ENTRY *NewMenuEntry;
|
BM_MENU_ENTRY *NewMenuEntry;
|
||||||
BM_LEGACY_DEVICE_CONTEXT *NewLegacyDevContext;
|
BM_LEGACY_DEVICE_CONTEXT *NewLegacyDevContext;
|
||||||
@ -780,7 +771,7 @@ Returns:
|
|||||||
sizeof (DescString),
|
sizeof (DescString),
|
||||||
DescString
|
DescString
|
||||||
);
|
);
|
||||||
NewLegacyDevContext->Description = EfiAllocateZeroPool (StrSize (DescString));
|
NewLegacyDevContext->Description = AllocateZeroPool (StrSize (DescString));
|
||||||
if (NULL == NewLegacyDevContext->Description) {
|
if (NULL == NewLegacyDevContext->Description) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -830,6 +821,14 @@ Returns:
|
|||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Free out resouce allocated from Legacy Boot Options.
|
||||||
|
|
||||||
|
@param VOID.
|
||||||
|
|
||||||
|
@return VOID.
|
||||||
|
|
||||||
|
**/
|
||||||
VOID
|
VOID
|
||||||
BOpt_FreeLegacyOptions (
|
BOpt_FreeLegacyOptions (
|
||||||
VOID
|
VOID
|
||||||
@ -842,24 +841,20 @@ BOpt_FreeLegacyOptions (
|
|||||||
BOpt_FreeMenu (&LegacyBEVMenu);
|
BOpt_FreeMenu (&LegacyBEVMenu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
Build the BootOptionMenu according to BootOrder Variable.
|
||||||
|
This Routine will access the Boot#### to get EFI_LOAD_OPTION.
|
||||||
|
|
||||||
|
@param None
|
||||||
|
|
||||||
|
@return The number of the Var Boot####.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
BOpt_GetBootOptions (
|
BOpt_GetBootOptions (
|
||||||
IN BMM_CALLBACK_DATA *CallbackData
|
IN BMM_CALLBACK_DATA *CallbackData
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Build the BootOptionMenu according to BootOrder Variable.
|
|
||||||
This Routine will access the Boot#### to get EFI_LOAD_OPTION
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
None
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
The number of the Var Boot####
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
UINTN Index;
|
UINTN Index;
|
||||||
UINT16 BootString[10];
|
UINT16 BootString[10];
|
||||||
@ -929,7 +924,7 @@ Returns:
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
LoadOption = EfiAllocateZeroPool (BootOptionSize);
|
LoadOption = AllocateZeroPool (BootOptionSize);
|
||||||
if (LoadOption == NULL) {
|
if (LoadOption == NULL) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -1014,7 +1009,7 @@ Returns:
|
|||||||
LoadOptionPtr += sizeof (UINT16);
|
LoadOptionPtr += sizeof (UINT16);
|
||||||
|
|
||||||
StringSize = StrSize ((UINT16 *) LoadOptionPtr);
|
StringSize = StrSize ((UINT16 *) LoadOptionPtr);
|
||||||
NewLoadContext->Description = EfiAllocateZeroPool (StringSize);
|
NewLoadContext->Description = AllocateZeroPool (StringSize);
|
||||||
ASSERT (NewLoadContext->Description != NULL);
|
ASSERT (NewLoadContext->Description != NULL);
|
||||||
CopyMem (
|
CopyMem (
|
||||||
NewLoadContext->Description,
|
NewLoadContext->Description,
|
||||||
@ -1025,7 +1020,7 @@ Returns:
|
|||||||
|
|
||||||
LoadOptionPtr += StringSize;
|
LoadOptionPtr += StringSize;
|
||||||
|
|
||||||
NewLoadContext->FilePathList = EfiAllocateZeroPool (NewLoadContext->FilePathListLength);
|
NewLoadContext->FilePathList = AllocateZeroPool (NewLoadContext->FilePathListLength);
|
||||||
ASSERT (NewLoadContext->FilePathList != NULL);
|
ASSERT (NewLoadContext->FilePathList != NULL);
|
||||||
CopyMem (
|
CopyMem (
|
||||||
NewLoadContext->FilePathList,
|
NewLoadContext->FilePathList,
|
||||||
@ -1051,7 +1046,7 @@ Returns:
|
|||||||
StringSize -
|
StringSize -
|
||||||
NewLoadContext->FilePathListLength;
|
NewLoadContext->FilePathListLength;
|
||||||
|
|
||||||
NewLoadContext->OptionalData = EfiAllocateZeroPool (OptionalDataSize);
|
NewLoadContext->OptionalData = AllocateZeroPool (OptionalDataSize);
|
||||||
ASSERT (NewLoadContext->OptionalData != NULL);
|
ASSERT (NewLoadContext->OptionalData != NULL);
|
||||||
CopyMem (
|
CopyMem (
|
||||||
NewLoadContext->OptionalData,
|
NewLoadContext->OptionalData,
|
||||||
@ -1072,46 +1067,22 @@ Returns:
|
|||||||
return MenuCount;
|
return MenuCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
CHAR16 *
|
/**
|
||||||
BdsStrCpy (
|
|
||||||
OUT CHAR16 *Destination,
|
|
||||||
IN CONST CHAR16 *Source
|
|
||||||
)
|
|
||||||
{
|
|
||||||
CHAR16 *ReturnValue;
|
|
||||||
|
|
||||||
//
|
Append file name to existing file name.
|
||||||
// Destination cannot be NULL
|
|
||||||
//
|
|
||||||
ASSERT (Destination != NULL);
|
|
||||||
|
|
||||||
ReturnValue = Destination;
|
@param Str1 The existing file name
|
||||||
while (*Source != L'\0') {
|
@param Str2 The file name to be appended
|
||||||
*(Destination++) = *(Source++);
|
|
||||||
}
|
|
||||||
*Destination = 0;
|
|
||||||
return ReturnValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@return Allocate a new string to hold the appended result.
|
||||||
|
Caller is responsible to free the returned string.
|
||||||
|
|
||||||
|
**/
|
||||||
CHAR16 *
|
CHAR16 *
|
||||||
BOpt_AppendFileName (
|
BOpt_AppendFileName (
|
||||||
IN CHAR16 *Str1,
|
IN CHAR16 *Str1,
|
||||||
IN CHAR16 *Str2
|
IN CHAR16 *Str2
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description
|
|
||||||
Append file name to existing file name.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
Str1 - existing file name
|
|
||||||
Str2 - file name to be appended
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
Allocate a new string to hold the appended result.
|
|
||||||
Caller is responsible to free the returned string.
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
UINTN Size1;
|
UINTN Size1;
|
||||||
UINTN Size2;
|
UINTN Size2;
|
||||||
@ -1121,7 +1092,7 @@ Returns:
|
|||||||
|
|
||||||
Size1 = StrSize (Str1);
|
Size1 = StrSize (Str1);
|
||||||
Size2 = StrSize (Str2);
|
Size2 = StrSize (Str2);
|
||||||
Str = EfiAllocateZeroPool (Size1 + Size2 + sizeof (CHAR16));
|
Str = AllocateZeroPool (Size1 + Size2 + sizeof (CHAR16));
|
||||||
ASSERT (Str != NULL);
|
ASSERT (Str != NULL);
|
||||||
|
|
||||||
StrCat (Str, Str1);
|
StrCat (Str, Str1);
|
||||||
@ -1140,13 +1111,13 @@ Returns:
|
|||||||
// DO NOT convert the .. if it is at the end of the string. This will
|
// DO NOT convert the .. if it is at the end of the string. This will
|
||||||
// break the .. behavior in changing directories.
|
// break the .. behavior in changing directories.
|
||||||
//
|
//
|
||||||
BdsStrCpy (LastSlash, Ptr + 3);
|
StrCpy (LastSlash, Ptr + 3);
|
||||||
Ptr = LastSlash;
|
Ptr = LastSlash;
|
||||||
} else if (*Ptr == '\\' && *(Ptr + 1) == '.' && *(Ptr + 2) == '\\') {
|
} else if (*Ptr == '\\' && *(Ptr + 1) == '.' && *(Ptr + 2) == '\\') {
|
||||||
//
|
//
|
||||||
// Convert a "\.\" to a "\"
|
// Convert a "\.\" to a "\"
|
||||||
//
|
//
|
||||||
BdsStrCpy (Ptr, Ptr + 2);
|
StrCpy (Ptr, Ptr + 2);
|
||||||
Ptr = LastSlash;
|
Ptr = LastSlash;
|
||||||
} else if (*Ptr == '\\') {
|
} else if (*Ptr == '\\') {
|
||||||
LastSlash = Ptr;
|
LastSlash = Ptr;
|
||||||
@ -1158,24 +1129,21 @@ Returns:
|
|||||||
return Str;
|
return Str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
Check whether current FileName point to a valid
|
||||||
|
Efi Image File.
|
||||||
|
|
||||||
|
@param FileName File need to be checked.
|
||||||
|
|
||||||
|
@retval TRUE Is Efi Image
|
||||||
|
@retval FALSE Not a valid Efi Image
|
||||||
|
|
||||||
|
**/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
BOpt_IsEfiImageName (
|
BOpt_IsEfiImageName (
|
||||||
IN UINT16 *FileName
|
IN UINT16 *FileName
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description
|
|
||||||
Check whether current FileName point to a valid
|
|
||||||
Efi Image File.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
FileName - File need to be checked.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
TRUE - Is Efi Image
|
|
||||||
FALSE - Not a valid Efi Image
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
// Search for ".efi" extension
|
// Search for ".efi" extension
|
||||||
@ -1203,25 +1171,22 @@ Returns:
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
Check whether current FileName point to a valid Efi Application
|
||||||
|
|
||||||
|
@param Dir Pointer to current Directory
|
||||||
|
@param FileName Pointer to current File name.
|
||||||
|
|
||||||
|
@retval TRUE Is a valid Efi Application
|
||||||
|
@retval FALSE not a valid Efi Application
|
||||||
|
|
||||||
|
**/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
BOpt_IsEfiApp (
|
BOpt_IsEfiApp (
|
||||||
IN EFI_FILE_HANDLE Dir,
|
IN EFI_FILE_HANDLE Dir,
|
||||||
IN UINT16 *FileName
|
IN UINT16 *FileName
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
Check whether current FileName point to a valid Efi Application
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
Dir - Pointer to current Directory
|
|
||||||
FileName - Pointer to current File name.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
TRUE - Is a valid Efi Application
|
|
||||||
FALSE - not a valid Efi Application
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
UINTN BufferSize;
|
UINTN BufferSize;
|
||||||
EFI_IMAGE_DOS_HEADER DosHdr;
|
EFI_IMAGE_DOS_HEADER DosHdr;
|
||||||
@ -1270,26 +1235,23 @@ Returns:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
EFI_STATUS
|
/**
|
||||||
BOpt_FindDrivers (
|
|
||||||
VOID
|
|
||||||
)
|
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description
|
|
||||||
Find drivers that will be added as Driver#### variables from handles
|
Find drivers that will be added as Driver#### variables from handles
|
||||||
in current system environment
|
in current system environment
|
||||||
All valid handles in the system except those consume SimpleFs, LoadFile
|
All valid handles in the system except those consume SimpleFs, LoadFile
|
||||||
are stored in DriverMenu for future use.
|
are stored in DriverMenu for future use.
|
||||||
|
|
||||||
Arguments:
|
@param VOID
|
||||||
None
|
|
||||||
|
|
||||||
Returns:
|
@retval EFI_SUCCESS The function complets successfully.
|
||||||
EFI_SUCCESS
|
@return Other value if failed to build the DriverMenu.
|
||||||
Others
|
|
||||||
|
|
||||||
--*/
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
BOpt_FindDrivers (
|
||||||
|
VOID
|
||||||
|
)
|
||||||
{
|
{
|
||||||
UINTN NoDevicePathHandles;
|
UINTN NoDevicePathHandles;
|
||||||
EFI_HANDLE *DevicePathHandle;
|
EFI_HANDLE *DevicePathHandle;
|
||||||
@ -1327,10 +1289,6 @@ Returns:
|
|||||||
for (Index = 0; Index < NoDevicePathHandles; Index++) {
|
for (Index = 0; Index < NoDevicePathHandles; Index++) {
|
||||||
CurHandle = DevicePathHandle[Index];
|
CurHandle = DevicePathHandle[Index];
|
||||||
|
|
||||||
//
|
|
||||||
// Check whether this handle support
|
|
||||||
// driver binding
|
|
||||||
//
|
|
||||||
Status = gBS->HandleProtocol (
|
Status = gBS->HandleProtocol (
|
||||||
CurHandle,
|
CurHandle,
|
||||||
&gEfiSimpleFileSystemProtocolGuid,
|
&gEfiSimpleFileSystemProtocolGuid,
|
||||||
@ -1371,21 +1329,19 @@ Returns:
|
|||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
Get the Option Number that has not been allocated for use.
|
||||||
|
|
||||||
|
@param VOID
|
||||||
|
|
||||||
|
@return The available Option Number.
|
||||||
|
|
||||||
|
**/
|
||||||
UINT16
|
UINT16
|
||||||
BOpt_GetBootOptionNumber (
|
BOpt_GetBootOptionNumber (
|
||||||
VOID
|
VOID
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
Get the Option Number that does not used
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
The Option Number
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
BM_MENU_ENTRY *NewMenuEntry;
|
BM_MENU_ENTRY *NewMenuEntry;
|
||||||
UINT16 *BootOrderList;
|
UINT16 *BootOrderList;
|
||||||
@ -1423,15 +1379,16 @@ Returns:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (Found) {
|
if (Found) {
|
||||||
UnicodeSPrint (StrTemp, 100, L"Boot%04x", Index);
|
UnicodeSPrint (StrTemp, 100, L"Boot%04x", Index);
|
||||||
DEBUG((DEBUG_ERROR,"INdex= %s\n", StrTemp));
|
DEBUG((DEBUG_ERROR,"INdex= %s\n", StrTemp));
|
||||||
OptionBuffer = BdsLibGetVariableAndSize (
|
OptionBuffer = BdsLibGetVariableAndSize (
|
||||||
StrTemp,
|
StrTemp,
|
||||||
&gEfiGlobalVariableGuid,
|
&gEfiGlobalVariableGuid,
|
||||||
&OptionSize
|
&OptionSize
|
||||||
);
|
);
|
||||||
if (NULL == OptionBuffer)
|
if (NULL == OptionBuffer) {
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
@ -1448,21 +1405,19 @@ Returns:
|
|||||||
return Number;
|
return Number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
Get the Option Number that is not in use.
|
||||||
|
|
||||||
|
@param VOID
|
||||||
|
|
||||||
|
@return The unused Option Number.
|
||||||
|
|
||||||
|
**/
|
||||||
UINT16
|
UINT16
|
||||||
BOpt_GetDriverOptionNumber (
|
BOpt_GetDriverOptionNumber (
|
||||||
VOID
|
VOID
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
Get the Option Number that does not used
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
The Option Number
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
BM_MENU_ENTRY *NewMenuEntry;
|
BM_MENU_ENTRY *NewMenuEntry;
|
||||||
UINT16 *DriverOrderList;
|
UINT16 *DriverOrderList;
|
||||||
@ -1514,21 +1469,21 @@ Returns:
|
|||||||
return Number;
|
return Number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
Build up all DriverOptionMenu
|
||||||
|
|
||||||
|
@param CallbackData The BMM context data.
|
||||||
|
|
||||||
|
@return EFI_SUCESS The functin completes successfully.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES Not enough memory to compete the operation.
|
||||||
|
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
BOpt_GetDriverOptions (
|
BOpt_GetDriverOptions (
|
||||||
IN BMM_CALLBACK_DATA *CallbackData
|
IN BMM_CALLBACK_DATA *CallbackData
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
Build up all DriverOptionMenu
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
The Option Number
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
UINTN Index;
|
UINTN Index;
|
||||||
UINT16 DriverString[12];
|
UINT16 DriverString[12];
|
||||||
@ -1579,7 +1534,7 @@ Returns:
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
LoadOption = EfiAllocateZeroPool (DriverOptionSize);
|
LoadOption = AllocateZeroPool (DriverOptionSize);
|
||||||
if (LoadOption == NULL) {
|
if (LoadOption == NULL) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -1619,7 +1574,7 @@ Returns:
|
|||||||
LoadOptionPtr += sizeof (UINT16);
|
LoadOptionPtr += sizeof (UINT16);
|
||||||
|
|
||||||
StringSize = StrSize ((UINT16 *) LoadOptionPtr);
|
StringSize = StrSize ((UINT16 *) LoadOptionPtr);
|
||||||
NewLoadContext->Description = EfiAllocateZeroPool (StringSize);
|
NewLoadContext->Description = AllocateZeroPool (StringSize);
|
||||||
ASSERT (NewLoadContext->Description != NULL);
|
ASSERT (NewLoadContext->Description != NULL);
|
||||||
CopyMem (
|
CopyMem (
|
||||||
NewLoadContext->Description,
|
NewLoadContext->Description,
|
||||||
@ -1630,7 +1585,7 @@ Returns:
|
|||||||
|
|
||||||
LoadOptionPtr += StringSize;
|
LoadOptionPtr += StringSize;
|
||||||
|
|
||||||
NewLoadContext->FilePathList = EfiAllocateZeroPool (NewLoadContext->FilePathListLength);
|
NewLoadContext->FilePathList = AllocateZeroPool (NewLoadContext->FilePathListLength);
|
||||||
ASSERT (NewLoadContext->FilePathList != NULL);
|
ASSERT (NewLoadContext->FilePathList != NULL);
|
||||||
CopyMem (
|
CopyMem (
|
||||||
NewLoadContext->FilePathList,
|
NewLoadContext->FilePathList,
|
||||||
@ -1656,7 +1611,7 @@ Returns:
|
|||||||
StringSize -
|
StringSize -
|
||||||
NewLoadContext->FilePathListLength;
|
NewLoadContext->FilePathListLength;
|
||||||
|
|
||||||
NewLoadContext->OptionalData = EfiAllocateZeroPool (OptionalDataSize);
|
NewLoadContext->OptionalData = AllocateZeroPool (OptionalDataSize);
|
||||||
ASSERT (NewLoadContext->OptionalData != NULL);
|
ASSERT (NewLoadContext->OptionalData != NULL);
|
||||||
CopyMem (
|
CopyMem (
|
||||||
NewLoadContext->OptionalData,
|
NewLoadContext->OptionalData,
|
||||||
|
@ -15,11 +15,14 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
#include "BootMaint.h"
|
#include "BootMaint.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Function creates a device path data structure that identically matches the
|
||||||
|
device path passed in.
|
||||||
|
|
||||||
@param DevPath EDES_TODO: Add parameter description
|
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@param DevPath A pointer to a device path data structure.
|
||||||
|
|
||||||
|
@return The new copy of DevPath is created to identically match the input.
|
||||||
|
@retval NULL Otherwise, NULL is returned.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_DEVICE_PATH_PROTOCOL *
|
EFI_DEVICE_PATH_PROTOCOL *
|
||||||
@ -28,11 +31,12 @@ DevicePathInstanceDup (
|
|||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Update Com Ports attributes from DevicePath
|
||||||
|
|
||||||
@param DevicePath EDES_TODO: Add parameter description
|
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@param DevicePath DevicePath that contains Com ports
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The update is successful.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
@ -41,18 +45,21 @@ UpdateComAttributeFromVariable (
|
|||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Update the multi-instance device path of Terminal Device based on
|
||||||
|
the global TerminalMenu. If ChangeTernimal is TRUE, the terminal
|
||||||
|
device path in the Terminal Device in TerminalMenu is also updated.
|
||||||
|
|
||||||
@param DevicePath EDES_TODO: Add parameter description
|
@param DevicePath The multi-instance device path.
|
||||||
@param ChangeTerminal EDES_TODO: Add parameter description
|
@param ChangeTerminal TRUE, then device path in the Terminal Device
|
||||||
|
in TerminalMenu is also updated; FALSE, no update.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@return EFI_SUCCESS The function completes successfully.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
ChangeTerminalDevicePath (
|
ChangeTerminalDevicePath (
|
||||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath,
|
EFI_DEVICE_PATH_PROTOCOL *DevicePath,
|
||||||
BOOLEAN ChangeTerminal
|
IN BOOLEAN ChangeTerminal
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
EFI_DEVICE_PATH_PROTOCOL *Node;
|
EFI_DEVICE_PATH_PROTOCOL *Node;
|
||||||
@ -78,9 +85,6 @@ ChangeTerminalDevicePath (
|
|||||||
}
|
}
|
||||||
|
|
||||||
NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, Com);
|
NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, Com);
|
||||||
if (NULL == NewMenuEntry) {
|
|
||||||
return EFI_NOT_FOUND;
|
|
||||||
}
|
|
||||||
|
|
||||||
NewTerminalContext = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;
|
NewTerminalContext = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;
|
||||||
if ((DevicePathType (Node) == MESSAGING_DEVICE_PATH) && (DevicePathSubType (Node) == MSG_UART_DP)) {
|
if ((DevicePathType (Node) == MESSAGING_DEVICE_PATH) && (DevicePathSubType (Node) == MSG_UART_DP)) {
|
||||||
@ -162,16 +166,18 @@ ChangeTerminalDevicePath (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Update the device path that describing a terminal device
|
||||||
|
based on the new BaudRate, Data Bits, parity and Stop Bits
|
||||||
|
set.
|
||||||
|
|
||||||
@param DevicePath EDES_TODO: Add parameter description
|
@param DevicePath
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
ChangeVariableDevicePath (
|
ChangeVariableDevicePath (
|
||||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath
|
IN OUT EFI_DEVICE_PATH_PROTOCOL *DevicePath
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
EFI_DEVICE_PATH_PROTOCOL *Node;
|
EFI_DEVICE_PATH_PROTOCOL *Node;
|
||||||
@ -237,8 +243,8 @@ ChangeVariableDevicePath (
|
|||||||
Retrieve ACPI UID of UART from device path
|
Retrieve ACPI UID of UART from device path
|
||||||
|
|
||||||
|
|
||||||
@param Handle EDES_TODO: Add parameter description
|
@param Handle The handle for the UART device.
|
||||||
@param AcpiUid EDES_TODO: Add parameter description
|
@param AcpiUid The ACPI UID on output.
|
||||||
|
|
||||||
@retval TRUE Find valid UID from device path
|
@retval TRUE Find valid UID from device path
|
||||||
@retval FALSE Can't find
|
@retval FALSE Can't find
|
||||||
@ -287,7 +293,7 @@ RetrieveUartUid (
|
|||||||
@param Handles EFI_SERIAL_IO_PROTOCOL handle buffer
|
@param Handles EFI_SERIAL_IO_PROTOCOL handle buffer
|
||||||
@param NoHandles EFI_SERIAL_IO_PROTOCOL handle count
|
@param NoHandles EFI_SERIAL_IO_PROTOCOL handle count
|
||||||
|
|
||||||
EDES_TODO: Incomplete Descriptions None
|
@retval VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -328,13 +334,15 @@ SortedUartHandle (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Test whether DevicePath is a valid Terminal
|
||||||
|
|
||||||
@param DevicePath EDES_TODO: Add parameter description
|
|
||||||
@param Termi EDES_TODO: Add parameter description
|
|
||||||
@param Com EDES_TODO: Add parameter description
|
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@param DevicePath DevicePath to be checked
|
||||||
|
@param Termi If DevicePath is valid Terminal, terminal type is returned.
|
||||||
|
@param Com If DevicePath is valid Terminal, Com Port type is returned.
|
||||||
|
|
||||||
|
@retval TRUE If DevicePath point to a Terminal.
|
||||||
|
@retval FALSE If DevicePath does not point to a Terminal.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
@ -511,7 +519,7 @@ LocateSerialIo (
|
|||||||
Vendor.Header.SubType = MSG_VENDOR_DP;
|
Vendor.Header.SubType = MSG_VENDOR_DP;
|
||||||
|
|
||||||
for (Index2 = 0; Index2 < 4; Index2++) {
|
for (Index2 = 0; Index2 < 4; Index2++) {
|
||||||
CopyMem (&Vendor.Guid, &Guid[Index2], sizeof (EFI_GUID));
|
CopyMem (&Vendor.Guid, &TerminalTypeGuid[Index2], sizeof (EFI_GUID));
|
||||||
SetDevicePathNodeLength (&Vendor.Header, sizeof (VENDOR_DEVICE_PATH));
|
SetDevicePathNodeLength (&Vendor.Header, sizeof (VENDOR_DEVICE_PATH));
|
||||||
NewDevicePath = AppendDevicePathNode (
|
NewDevicePath = AppendDevicePathNode (
|
||||||
NewTerminalContext->DevicePath,
|
NewTerminalContext->DevicePath,
|
||||||
@ -550,7 +558,7 @@ LocateSerialIo (
|
|||||||
|
|
||||||
@param DevicePath DevicePath that contains Com ports
|
@param DevicePath DevicePath that contains Com ports
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@retval EFI_SUCCESS The update is successful.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
@ -672,8 +680,8 @@ UpdateComAttributeFromVariable (
|
|||||||
|
|
||||||
@param DevPath A pointer to a device path data structure.
|
@param DevPath A pointer to a device path data structure.
|
||||||
|
|
||||||
EDES_TODO: Incomplete Descriptions The new copy of DevPath is created to identically match the input.
|
@return The new copy of DevPath is created to identically match the input.
|
||||||
EDES_TODO: Incomplete Descriptions Otherwise, NULL is returned.
|
@retval NULL Otherwise, NULL is returned.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_DEVICE_PATH_PROTOCOL *
|
EFI_DEVICE_PATH_PROTOCOL *
|
||||||
@ -698,7 +706,7 @@ DevicePathInstanceDup (
|
|||||||
//
|
//
|
||||||
NewDevPath = NULL;
|
NewDevPath = NULL;
|
||||||
if (Size != 0) {
|
if (Size != 0) {
|
||||||
NewDevPath = EfiAllocateZeroPool (Size);
|
NewDevPath = AllocateZeroPool (Size);
|
||||||
ASSERT (NewDevPath != NULL);
|
ASSERT (NewDevPath != NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -714,11 +722,18 @@ DevicePathInstanceDup (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Build up Console Menu based on types passed in. The type can
|
||||||
|
be BM_CONSOLE_IN_CONTEXT_SELECT, BM_CONSOLE_OUT_CONTEXT_SELECT
|
||||||
|
and BM_CONSOLE_ERR_CONTEXT_SELECT.
|
||||||
|
|
||||||
@param ConsoleMenuType EDES_TODO: Add parameter description
|
@param ConsoleMenuType Can be BM_CONSOLE_IN_CONTEXT_SELECT, BM_CONSOLE_OUT_CONTEXT_SELECT
|
||||||
|
and BM_CONSOLE_ERR_CONTEXT_SELECT.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@retval EFI_UNSUPPORTED The type passed in is not in the 3 types defined.
|
||||||
|
@retval EFI_NOT_FOUND If the EFI Variable defined in UEFI spec with name "ConOutDev",
|
||||||
|
"ConInDev" or "ConErrDev" doesn't exists.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES Not enough resource to complete the operations.
|
||||||
|
@retval EFI_SUCCESS Function completes successfully.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
@ -796,7 +811,7 @@ GetConsoleMenu (
|
|||||||
AllCount = EfiDevicePathInstanceCount (AllDevicePath);
|
AllCount = EfiDevicePathInstanceCount (AllDevicePath);
|
||||||
ConsoleMenu->MenuNumber = 0;
|
ConsoleMenu->MenuNumber = 0;
|
||||||
//
|
//
|
||||||
// Following is menu building up for Console Out Devices
|
// Following is menu building up for Console Devices selected.
|
||||||
//
|
//
|
||||||
MultiDevicePath = AllDevicePath;
|
MultiDevicePath = AllDevicePath;
|
||||||
Index2 = 0;
|
Index2 = 0;
|
||||||
@ -844,10 +859,9 @@ GetConsoleMenu (
|
|||||||
Build up ConsoleOutMenu, ConsoleInpMenu and ConsoleErrMenu
|
Build up ConsoleOutMenu, ConsoleInpMenu and ConsoleErrMenu
|
||||||
|
|
||||||
|
|
||||||
@param VOID EDES_TODO: Add parameter description
|
@param VOID
|
||||||
|
|
||||||
EDES_TODO: Incomplete Descriptions EFI_SUCCESS
|
@retval EFI_SUCCESS The function always complete successfully.
|
||||||
EDES_TODO: Incomplete Descriptions Others
|
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
@ -867,9 +881,7 @@ GetAllConsoles (
|
|||||||
|
|
||||||
@param VOID EDES_TODO: Add parameter description
|
@param VOID EDES_TODO: Add parameter description
|
||||||
|
|
||||||
EDES_TODO: Incomplete Descriptions EFI_SUCCESS
|
@retval EFI_SUCCESS The function always complete successfully.
|
||||||
EDES_TODO: Incomplete Descriptions Others
|
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
FreeAllConsoles (
|
FreeAllConsoles (
|
||||||
@ -888,11 +900,11 @@ FreeAllConsoles (
|
|||||||
|
|
||||||
|
|
||||||
@param DevicePath DevicePath to be checked
|
@param DevicePath DevicePath to be checked
|
||||||
@param Termi If is terminal, give its type
|
@param Termi If DevicePath is valid Terminal, terminal type is returned.
|
||||||
@param Com If is Com Port, give its type
|
@param Com If DevicePath is valid Terminal, Com Port type is returned.
|
||||||
|
|
||||||
@retval TRUE If DevicePath point to a Terminal
|
@retval TRUE If DevicePath point to a Terminal.
|
||||||
FALSE
|
@retval FALSE If DevicePath does not point to a Terminal.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
@ -929,19 +941,19 @@ IsTerminalDevicePath (
|
|||||||
//
|
//
|
||||||
CopyMem (&TempGuid, &Vendor->Guid, sizeof (EFI_GUID));
|
CopyMem (&TempGuid, &Vendor->Guid, sizeof (EFI_GUID));
|
||||||
|
|
||||||
if (CompareGuid (&TempGuid, &Guid[0])) {
|
if (CompareGuid (&TempGuid, &TerminalTypeGuid[0])) {
|
||||||
*Termi = PC_ANSI;
|
*Termi = PC_ANSI;
|
||||||
IsTerminal = TRUE;
|
IsTerminal = TRUE;
|
||||||
} else {
|
} else {
|
||||||
if (CompareGuid (&TempGuid, &Guid[1])) {
|
if (CompareGuid (&TempGuid, &TerminalTypeGuid[1])) {
|
||||||
*Termi = VT_100;
|
*Termi = VT_100;
|
||||||
IsTerminal = TRUE;
|
IsTerminal = TRUE;
|
||||||
} else {
|
} else {
|
||||||
if (CompareGuid (&TempGuid, &Guid[2])) {
|
if (CompareGuid (&TempGuid, &TerminalTypeGuid[2])) {
|
||||||
*Termi = VT_100_PLUS;
|
*Termi = VT_100_PLUS;
|
||||||
IsTerminal = TRUE;
|
IsTerminal = TRUE;
|
||||||
} else {
|
} else {
|
||||||
if (CompareGuid (&TempGuid, &Guid[3])) {
|
if (CompareGuid (&TempGuid, &TerminalTypeGuid[3])) {
|
||||||
*Termi = VT_UTF8;
|
*Termi = VT_UTF8;
|
||||||
IsTerminal = TRUE;
|
IsTerminal = TRUE;
|
||||||
} else {
|
} else {
|
||||||
@ -971,9 +983,9 @@ IsTerminalDevicePath (
|
|||||||
Get mode number according to column and row
|
Get mode number according to column and row
|
||||||
|
|
||||||
|
|
||||||
@param CallbackData BMM_CALLBACK_DATA
|
@param CallbackData The BMM context data.
|
||||||
|
|
||||||
EDES_TODO: Incomplete Descriptions None.
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
|
@ -307,7 +307,7 @@ COM_ATTR StopBitsList[3] = {
|
|||||||
//
|
//
|
||||||
// Guid for messaging path, used in Serial port setting.
|
// Guid for messaging path, used in Serial port setting.
|
||||||
//
|
//
|
||||||
EFI_GUID Guid[4] = {
|
EFI_GUID TerminalTypeGuid[4] = {
|
||||||
DEVICE_PATH_MESSAGING_PC_ANSI,
|
DEVICE_PATH_MESSAGING_PC_ANSI,
|
||||||
DEVICE_PATH_MESSAGING_VT_100,
|
DEVICE_PATH_MESSAGING_VT_100,
|
||||||
DEVICE_PATH_MESSAGING_VT_100_PLUS,
|
DEVICE_PATH_MESSAGING_VT_100_PLUS,
|
||||||
|
@ -18,10 +18,10 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
Update the File Explore page.
|
Update the File Explore page.
|
||||||
|
|
||||||
|
|
||||||
@param CallbackData EDES_TODO: Add parameter description
|
@param CallbackData The BMM context data.
|
||||||
@param MenuOption Pointer to menu options to display.
|
@param MenuOption Pointer to menu options to display.
|
||||||
|
|
||||||
EDES_TODO: Incomplete Descriptions None.
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -212,6 +212,15 @@ UpdateFileExplorer (
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
This function processes the results of changes in configuration.
|
This function processes the results of changes in configuration.
|
||||||
|
When user select a interactive opcode, this callback will be triggered.
|
||||||
|
Based on the Question(QuestionId) that triggers the callback, the corresponding
|
||||||
|
actions is performed. It handles:
|
||||||
|
|
||||||
|
1) the addition of boot option.
|
||||||
|
2) the addition of driver option.
|
||||||
|
3) exit from file browser
|
||||||
|
4) update of file content if a dir is selected.
|
||||||
|
5) boot the file if a file is selected in "boot from file"
|
||||||
|
|
||||||
|
|
||||||
@param This Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
|
@param This Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/** @file
|
/** @file
|
||||||
Dynamically Update the pages
|
Dynamically update the pages.
|
||||||
|
|
||||||
Copyright (c) 2004 - 2008, Intel Corporation. <BR>
|
Copyright (c) 2004 - 2008, Intel Corporation. <BR>
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
@ -17,10 +17,9 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
/**
|
/**
|
||||||
Refresh the global UpdateData structure.
|
Refresh the global UpdateData structure.
|
||||||
|
|
||||||
|
@param VOID
|
||||||
|
|
||||||
@param VOID EDES_TODO: Add parameter description
|
@return VOID
|
||||||
|
|
||||||
EDES_TODO: Incomplete Descriptions None.
|
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -32,11 +31,13 @@ RefreshUpdateData (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Add a "Go back to main page" tag in front of the form when there are no
|
||||||
|
"Apply changes" and "Discard changes" tags in the end of the form.
|
||||||
|
|
||||||
|
|
||||||
@param CallbackData EDES_TODO: Add parameter description
|
@param CallbackData The BMM context data.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -64,11 +65,12 @@ UpdatePageStart (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Create the "Apply changes" and "Discard changes" tags. And
|
||||||
|
ensure user can return to the main page.
|
||||||
|
|
||||||
@param CallbackData EDES_TODO: Add parameter description
|
@param CallbackData The BMM context data.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -121,12 +123,14 @@ UpdatePageEnd (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Clean up the dynamic opcode at label and form specified by
|
||||||
|
both LabelId.
|
||||||
|
|
||||||
@param LabelId EDES_TODO: Add parameter description
|
@param LabelId It is both the Form ID and Label ID for
|
||||||
@param CallbackData EDES_TODO: Add parameter description
|
opcode deletion.
|
||||||
|
@param CallbackData The BMM context data.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -151,11 +155,13 @@ CleanUpPage (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Boot a file selected by user at File Expoloer of BMM.
|
||||||
|
|
||||||
@param FileContext EDES_TODO: Add parameter description
|
@param FileContext The file context data, which contains the device path
|
||||||
|
of the file to be boot from.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@retval EFI_SUCCESS The function completed successfull.
|
||||||
|
@retun Other value if the boot from the file fails.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
@ -192,11 +198,12 @@ BootThisFile (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Create a list of Goto Opcode for all terminal devices logged
|
||||||
|
by TerminaMenu. This list will be inserted to form FORM_CON_COM_SETUP_ID.
|
||||||
|
|
||||||
@param CallbackData EDES_TODO: Add parameter description
|
@param CallbackData The BMM context data.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -229,11 +236,12 @@ UpdateConCOMPage (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Create a lit of boot option from global BootOptionMenu. It
|
||||||
|
allow user to delete the boot option.
|
||||||
|
|
||||||
@param CallbackData EDES_TODO: Add parameter description
|
@param CallbackData The BMM context data.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -276,11 +284,11 @@ UpdateBootDelPage (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Create a lit of driver option from global DriverMenu.
|
||||||
|
|
||||||
@param CallbackData EDES_TODO: Add parameter description
|
@param CallbackData The BMM context data.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -312,11 +320,13 @@ UpdateDrvAddHandlePage (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Create a lit of driver option from global DriverOptionMenu. It
|
||||||
|
allow user to delete the driver option.
|
||||||
|
|
||||||
@param CallbackData EDES_TODO: Add parameter description
|
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@param CallbackData The BMM context data.
|
||||||
|
|
||||||
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -357,11 +367,12 @@ UpdateDrvDelPage (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Prepare the page to allow user to add description for
|
||||||
|
a Driver Option.
|
||||||
|
|
||||||
@param CallbackData EDES_TODO: Add parameter description
|
@param CallbackData The BMM context data.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -431,9 +442,9 @@ UpdateDriverAddHandleDescPage (
|
|||||||
|
|
||||||
@param UpdatePageId EDES_TODO: Add parameter description
|
@param UpdatePageId EDES_TODO: Add parameter description
|
||||||
@param ConsoleMenu EDES_TODO: Add parameter description
|
@param ConsoleMenu EDES_TODO: Add parameter description
|
||||||
@param CallbackData EDES_TODO: Add parameter description
|
@param CallbackData The BMM context data.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -510,13 +521,14 @@ UpdateConsolePage (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Update the page's NV Map if user has changed the order
|
||||||
|
a list. This list can be Boot Order or Driver Order.
|
||||||
|
|
||||||
@param UpdatePageId EDES_TODO: Add parameter description
|
@param UpdatePageId The form ID to be updated.
|
||||||
@param OptionMenu EDES_TODO: Add parameter description
|
@param OptionMenu The new list.
|
||||||
@param CallbackData EDES_TODO: Add parameter description
|
@param CallbackData The BMM context data.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -538,7 +550,7 @@ UpdateOrderPage (
|
|||||||
|
|
||||||
ZeroMem (CallbackData->BmmFakeNvData.OptionOrder, 100);
|
ZeroMem (CallbackData->BmmFakeNvData.OptionOrder, 100);
|
||||||
|
|
||||||
IfrOptionList = EfiAllocateZeroPool (sizeof (IFR_OPTION) * OptionMenu->MenuNumber);
|
IfrOptionList = AllocateZeroPool (sizeof (IFR_OPTION) * OptionMenu->MenuNumber);
|
||||||
if (NULL == IfrOptionList) {
|
if (NULL == IfrOptionList) {
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
@ -580,11 +592,12 @@ UpdateOrderPage (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Create the dynamic page to allow user to set
|
||||||
|
the "BootNext" vaule.
|
||||||
|
|
||||||
@param CallbackData EDES_TODO: Add parameter description
|
@param CallbackData The BMM context data.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -606,7 +619,7 @@ UpdateBootNextPage (
|
|||||||
CreateMenuStringToken (CallbackData, CallbackData->BmmHiiHandle, &BootOptionMenu);
|
CreateMenuStringToken (CallbackData, CallbackData->BmmHiiHandle, &BootOptionMenu);
|
||||||
|
|
||||||
if (NumberOfOptions > 0) {
|
if (NumberOfOptions > 0) {
|
||||||
IfrOptionList = EfiAllocateZeroPool ((NumberOfOptions + 1) * sizeof (IFR_OPTION));
|
IfrOptionList = AllocateZeroPool ((NumberOfOptions + 1) * sizeof (IFR_OPTION));
|
||||||
|
|
||||||
ASSERT (IfrOptionList);
|
ASSERT (IfrOptionList);
|
||||||
|
|
||||||
@ -653,11 +666,12 @@ UpdateBootNextPage (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Create the dynamic page to allow user to set
|
||||||
|
the "TimeOut" vaule.
|
||||||
|
|
||||||
@param CallbackData EDES_TODO: Add parameter description
|
@param CallbackData The BMM context data.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -697,9 +711,9 @@ UpdateTimeOutPage (
|
|||||||
Refresh the text mode page
|
Refresh the text mode page
|
||||||
|
|
||||||
|
|
||||||
@param CallbackData BMM_CALLBACK_DATA
|
@param CallbackData The BMM context data.
|
||||||
|
|
||||||
EDES_TODO: Incomplete Descriptions None.
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -744,10 +758,10 @@ UpdateConModePage (
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
IfrOptionList = EfiAllocateZeroPool (sizeof (IFR_OPTION) * ValidMode);
|
IfrOptionList = AllocateZeroPool (sizeof (IFR_OPTION) * ValidMode);
|
||||||
ASSERT(IfrOptionList != NULL);
|
ASSERT(IfrOptionList != NULL);
|
||||||
|
|
||||||
ModeToken = EfiAllocateZeroPool (sizeof (EFI_STRING_ID) * ValidMode);
|
ModeToken = AllocateZeroPool (sizeof (EFI_STRING_ID) * ValidMode);
|
||||||
ASSERT(ModeToken != NULL);
|
ASSERT(ModeToken != NULL);
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -802,11 +816,13 @@ UpdateConModePage (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Create the dynamic page which allows user to
|
||||||
|
set the property such as Baud Rate, Data Bits,
|
||||||
|
Parity, Stop Bits, Terminal Type.
|
||||||
|
|
||||||
@param CallbackData EDES_TODO: Add parameter description
|
@param CallbackData The BMM context data.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -835,12 +851,12 @@ UpdateTerminalPage (
|
|||||||
|
|
||||||
NewTerminalContext = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;
|
NewTerminalContext = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;
|
||||||
|
|
||||||
IfrOptionList = EfiAllocateZeroPool (sizeof (IFR_OPTION) * 19);
|
IfrOptionList = AllocateZeroPool (sizeof (IFR_OPTION) * 19);
|
||||||
if (IfrOptionList == NULL) {
|
if (IfrOptionList == NULL) {
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Index = 0; Index < 19; Index++) {
|
for (Index = 0; Index < sizeof (BaudRateList) / sizeof (BaudRateList [0]); Index++) {
|
||||||
CheckFlags = 0;
|
CheckFlags = 0;
|
||||||
if (NewTerminalContext->BaudRate == (UINT64) (BaudRateList[Index].Value)) {
|
if (NewTerminalContext->BaudRate == (UINT64) (BaudRateList[Index].Value)) {
|
||||||
CheckFlags |= EFI_IFR_OPTION_DEFAULT;
|
CheckFlags |= EFI_IFR_OPTION_DEFAULT;
|
||||||
@ -866,7 +882,7 @@ UpdateTerminalPage (
|
|||||||
&gUpdateData
|
&gUpdateData
|
||||||
);
|
);
|
||||||
|
|
||||||
for (Index = 0; Index < 4; Index++) {
|
for (Index = 0; Index < sizeof (DataBitsList) / sizeof (DataBitsList[0]); Index++) {
|
||||||
CheckFlags = 0;
|
CheckFlags = 0;
|
||||||
|
|
||||||
if (NewTerminalContext->DataBits == DataBitsList[Index].Value) {
|
if (NewTerminalContext->DataBits == DataBitsList[Index].Value) {
|
||||||
@ -893,7 +909,7 @@ UpdateTerminalPage (
|
|||||||
&gUpdateData
|
&gUpdateData
|
||||||
);
|
);
|
||||||
|
|
||||||
for (Index = 0; Index < 5; Index++) {
|
for (Index = 0; Index < sizeof (ParityList) / sizeof (ParityList[0]); Index++) {
|
||||||
CheckFlags = 0;
|
CheckFlags = 0;
|
||||||
if (NewTerminalContext->Parity == ParityList[Index].Value) {
|
if (NewTerminalContext->Parity == ParityList[Index].Value) {
|
||||||
CheckFlags |= EFI_IFR_OPTION_DEFAULT;
|
CheckFlags |= EFI_IFR_OPTION_DEFAULT;
|
||||||
@ -919,7 +935,7 @@ UpdateTerminalPage (
|
|||||||
&gUpdateData
|
&gUpdateData
|
||||||
);
|
);
|
||||||
|
|
||||||
for (Index = 0; Index < 3; Index++) {
|
for (Index = 0; Index < sizeof (StopBitsList) / sizeof (StopBitsList[0]); Index++) {
|
||||||
CheckFlags = 0;
|
CheckFlags = 0;
|
||||||
if (NewTerminalContext->StopBits == StopBitsList[Index].Value) {
|
if (NewTerminalContext->StopBits == StopBitsList[Index].Value) {
|
||||||
CheckFlags |= EFI_IFR_OPTION_DEFAULT;
|
CheckFlags |= EFI_IFR_OPTION_DEFAULT;
|
||||||
@ -976,12 +992,13 @@ UpdateTerminalPage (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Dispatch the correct update page function to call based on
|
||||||
|
the UpdatePageId.
|
||||||
|
|
||||||
@param UpdatePageId EDES_TODO: Add parameter description
|
@param UpdatePageId The form ID.
|
||||||
@param CallbackData EDES_TODO: Add parameter description
|
@param CallbackData The BMM context data.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -1018,13 +1035,15 @@ UpdatePageBody (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Get the index number (#### in Boot####) for the boot option pointed to a BBS legacy device type
|
||||||
|
specified by DeviceType.
|
||||||
|
|
||||||
@param DeviceType EDES_TODO: Add parameter description
|
@param DeviceType The legacy device type. It can be floppy, network, harddisk, cdrom,
|
||||||
@param OptionIndex EDES_TODO: Add parameter description
|
etc.
|
||||||
@param OptionSize EDES_TODO: Add parameter description
|
@param OptionIndex Returns the index number (#### in Boot####).
|
||||||
|
@param OptionSize Return the size of the Boot### variable.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID *
|
VOID *
|
||||||
@ -1100,12 +1119,13 @@ GetLegacyBootOptionVar (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Create a dynamic page so that Legacy Device boot order
|
||||||
|
can be set for specified device type.
|
||||||
|
|
||||||
@param UpdatePageId EDES_TODO: Add parameter description
|
@param UpdatePageId The form ID. It also spefies the legacy device type.
|
||||||
@param CallbackData EDES_TODO: Add parameter description
|
@param CallbackData The BMM context data.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -1210,7 +1230,7 @@ UpdateSetLegacyDeviceOrderPage (
|
|||||||
|
|
||||||
CreateMenuStringToken (CallbackData, CallbackData->BmmHiiHandle, OptionMenu);
|
CreateMenuStringToken (CallbackData, CallbackData->BmmHiiHandle, OptionMenu);
|
||||||
|
|
||||||
IfrOptionList = EfiAllocateZeroPool (sizeof (IFR_OPTION) * (OptionMenu->MenuNumber + 1));
|
IfrOptionList = AllocateZeroPool (sizeof (IFR_OPTION) * (OptionMenu->MenuNumber + 1));
|
||||||
if (NULL == IfrOptionList) {
|
if (NULL == IfrOptionList) {
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
@ -1304,12 +1324,12 @@ UpdateSetLegacyDeviceOrderPage (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Dispatch the display to the next page based on NewPageId.
|
||||||
|
|
||||||
@param Private EDES_TODO: Add parameter description
|
@param Private The BMM context data.
|
||||||
@param NewPageId EDES_TODO: Add parameter description
|
@param NewPageId The original page ID.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
|
@ -22,8 +22,9 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
|
|
||||||
@param VOID EDES_TODO: Add parameter description
|
@param VOID EDES_TODO: Add parameter description
|
||||||
|
|
||||||
EDES_TODO: Incomplete Descriptions EFI_SUCCESS
|
@retval EFI_SUCCESS If all boot load option EFI Variables corresponding to
|
||||||
EDES_TODO: Incomplete Descriptions Others
|
BM_LOAD_CONTEXT marked for deletion is deleted
|
||||||
|
@return Others If failed to update the "BootOrder" variable after deletion.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
@ -87,10 +88,11 @@ Var_DelBootOption (
|
|||||||
scratch by content from BootOptionMenu is needed.
|
scratch by content from BootOptionMenu is needed.
|
||||||
|
|
||||||
|
|
||||||
@param VOID EDES_TODO: Add parameter description
|
@param VOID
|
||||||
|
|
||||||
EDES_TODO: Incomplete Descriptions EFI_SUCCESS
|
@retval EFI_SUCCESS The boot order is updated successfully.
|
||||||
EDES_TODO: Incomplete Descriptions Others
|
@return EFI_STATUS other than EFI_SUCCESS if failed to
|
||||||
|
Set the "BootOrder" EFI Variable.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
@ -138,7 +140,7 @@ Var_ChangeBootOrder (
|
|||||||
BootOrderListSize = BootOptionMenu.MenuNumber;
|
BootOrderListSize = BootOptionMenu.MenuNumber;
|
||||||
|
|
||||||
if (BootOrderListSize > 0) {
|
if (BootOrderListSize > 0) {
|
||||||
BootOrderList = EfiAllocateZeroPool (BootOrderListSize * sizeof (UINT16));
|
BootOrderList = AllocateZeroPool (BootOrderListSize * sizeof (UINT16));
|
||||||
ASSERT (BootOrderList != NULL);
|
ASSERT (BootOrderList != NULL);
|
||||||
BootOrderListPtr = BootOrderList;
|
BootOrderListPtr = BootOrderList;
|
||||||
|
|
||||||
@ -178,10 +180,11 @@ Var_ChangeBootOrder (
|
|||||||
make sure DriverOrder is in valid state.
|
make sure DriverOrder is in valid state.
|
||||||
|
|
||||||
|
|
||||||
@param VOID EDES_TODO: Add parameter description
|
@param VOID
|
||||||
|
|
||||||
EDES_TODO: Incomplete Descriptions EFI_SUCCESS
|
@retval EFI_SUCCESS Load Option is successfully updated.
|
||||||
EDES_TODO: Incomplete Descriptions Others
|
@return Other value than EFI_SUCCESS if failed to update "Driver Order" EFI
|
||||||
|
Variable.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
@ -238,10 +241,11 @@ Var_DelDriverOption (
|
|||||||
needed.
|
needed.
|
||||||
|
|
||||||
|
|
||||||
@param VOID EDES_TODO: Add parameter description
|
@param VOID
|
||||||
|
|
||||||
EDES_TODO: Incomplete Descriptions EFI_SUCCESS
|
@retval EFI_SUCCESS The driver order is updated successfully.
|
||||||
EDES_TODO: Incomplete Descriptions Others
|
@return EFI_STATUS other than EFI_SUCCESS if failed to
|
||||||
|
Set the "DriverOrder" EFI Variable.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
@ -280,7 +284,7 @@ Var_ChangeDriverOrder (
|
|||||||
DriverOrderListSize = DriverOptionMenu.MenuNumber;
|
DriverOrderListSize = DriverOptionMenu.MenuNumber;
|
||||||
|
|
||||||
if (DriverOrderListSize > 0) {
|
if (DriverOrderListSize > 0) {
|
||||||
DriverOrderList = EfiAllocateZeroPool (DriverOrderListSize * sizeof (UINT16));
|
DriverOrderList = AllocateZeroPool (DriverOrderListSize * sizeof (UINT16));
|
||||||
ASSERT (DriverOrderList != NULL);
|
ASSERT (DriverOrderList != NULL);
|
||||||
DriverOrderListPtr = DriverOrderList;
|
DriverOrderListPtr = DriverOrderList;
|
||||||
|
|
||||||
@ -315,11 +319,13 @@ Var_ChangeDriverOrder (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Update the device path of "ConOut", "ConIn" and "ErrOut"
|
||||||
|
based on the new BaudRate, Data Bits, parity and Stop Bits
|
||||||
|
set.
|
||||||
|
|
||||||
@param VOID EDES_TODO: Add parameter description
|
@param VOID
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@return VOID
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -373,13 +379,26 @@ Var_UpdateAllConsoleOption (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
This function delete and build multi-instance device path for
|
||||||
|
specified type of console device.
|
||||||
|
|
||||||
@param ConsoleName EDES_TODO: Add parameter description
|
This function clear the EFI variable defined by ConsoleName and
|
||||||
@param ConsoleMenu EDES_TODO: Add parameter description
|
gEfiGlobalVariableGuid. It then build the multi-instance device
|
||||||
@param UpdatePageId EDES_TODO: Add parameter description
|
path by appending the device path of the Console (In/Out/Err) instance
|
||||||
|
in ConsoleMenu. Then it scan all corresponding console device by
|
||||||
|
scanning Terminal (built from device supporting Serial I/O instances)
|
||||||
|
devices in TerminalMenu. At last, it save a EFI variable specifed
|
||||||
|
by ConsoleName and gEfiGlobalVariableGuid.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@param ConsoleName The name for the console device type. They are
|
||||||
|
usually "ConIn", "ConOut" and "ErrOut".
|
||||||
|
@param ConsoleMenu The console memu which is a list of console devices.
|
||||||
|
@param UpdatePageId The flag specifying which type of console device
|
||||||
|
to be processed.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The function complete successfully.
|
||||||
|
@return The EFI variable can be saved. See gRT->SetVariable
|
||||||
|
for detail return information.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
@ -406,13 +425,10 @@ Var_UpdateConsoleOption (
|
|||||||
};
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
// First add all console input device to it from console input menu
|
// First add all console input device from console input menu
|
||||||
//
|
//
|
||||||
for (Index = 0; Index < ConsoleMenu->MenuNumber; Index++) {
|
for (Index = 0; Index < ConsoleMenu->MenuNumber; Index++) {
|
||||||
NewMenuEntry = BOpt_GetMenuEntry (ConsoleMenu, Index);
|
NewMenuEntry = BOpt_GetMenuEntry (ConsoleMenu, Index);
|
||||||
if (NULL == NewMenuEntry) {
|
|
||||||
return EFI_NOT_FOUND;
|
|
||||||
}
|
|
||||||
|
|
||||||
NewConsoleContext = (BM_CONSOLE_CONTEXT *) NewMenuEntry->VariableContext;
|
NewConsoleContext = (BM_CONSOLE_CONTEXT *) NewMenuEntry->VariableContext;
|
||||||
if (NewConsoleContext->IsActive) {
|
if (NewConsoleContext->IsActive) {
|
||||||
@ -425,9 +441,6 @@ Var_UpdateConsoleOption (
|
|||||||
|
|
||||||
for (Index = 0; Index < TerminalMenu.MenuNumber; Index++) {
|
for (Index = 0; Index < TerminalMenu.MenuNumber; Index++) {
|
||||||
NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, Index);
|
NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, Index);
|
||||||
if (NULL == NewMenuEntry) {
|
|
||||||
return EFI_NOT_FOUND;
|
|
||||||
}
|
|
||||||
|
|
||||||
NewTerminalContext = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;
|
NewTerminalContext = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;
|
||||||
if (((NewTerminalContext->IsConIn != 0) && (UpdatePageId == FORM_CON_IN_ID)) ||
|
if (((NewTerminalContext->IsConIn != 0) && (UpdatePageId == FORM_CON_IN_ID)) ||
|
||||||
@ -438,7 +451,7 @@ Var_UpdateConsoleOption (
|
|||||||
Vendor.Header.SubType = MSG_VENDOR_DP;
|
Vendor.Header.SubType = MSG_VENDOR_DP;
|
||||||
CopyMem (
|
CopyMem (
|
||||||
&Vendor.Guid,
|
&Vendor.Guid,
|
||||||
&Guid[NewTerminalContext->TerminalType],
|
&TerminalTypeGuid[NewTerminalContext->TerminalType],
|
||||||
sizeof (EFI_GUID)
|
sizeof (EFI_GUID)
|
||||||
);
|
);
|
||||||
SetDevicePathNodeLength (&Vendor.Header, sizeof (VENDOR_DEVICE_PATH));
|
SetDevicePathNodeLength (&Vendor.Header, sizeof (VENDOR_DEVICE_PATH));
|
||||||
@ -473,12 +486,15 @@ Var_UpdateConsoleOption (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
This function delete and build multi-instance device path ConIn
|
||||||
|
console device.
|
||||||
|
|
||||||
@param VOID EDES_TODO: Add parameter description
|
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@param VOID
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The function complete successfully.
|
||||||
|
@return The EFI variable can be saved. See gRT->SetVariable
|
||||||
|
for detail return information.
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
Var_UpdateConsoleInpOption (
|
Var_UpdateConsoleInpOption (
|
||||||
@ -489,12 +505,15 @@ Var_UpdateConsoleInpOption (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
This function delete and build multi-instance device path ConOut
|
||||||
|
console device.
|
||||||
|
|
||||||
@param VOID EDES_TODO: Add parameter description
|
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@param VOID
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The function complete successfully.
|
||||||
|
@return The EFI variable can be saved. See gRT->SetVariable
|
||||||
|
for detail return information.
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
Var_UpdateConsoleOutOption (
|
Var_UpdateConsoleOutOption (
|
||||||
@ -505,12 +524,15 @@ Var_UpdateConsoleOutOption (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
This function delete and build multi-instance device path ErrOut
|
||||||
|
console device.
|
||||||
|
|
||||||
@param VOID EDES_TODO: Add parameter description
|
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@param VOID
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The function complete successfully.
|
||||||
|
@return The EFI variable can be saved. See gRT->SetVariable
|
||||||
|
for detail return information.
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
Var_UpdateErrorOutOption (
|
Var_UpdateErrorOutOption (
|
||||||
@ -521,15 +543,19 @@ Var_UpdateErrorOutOption (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
This function create a currently loaded Drive Option from
|
||||||
|
the BMM. It then appends this Driver Option to the end of
|
||||||
|
the "DriverOrder" list. It append this Driver Opotion to the end
|
||||||
|
of DriverOptionMenu.
|
||||||
|
|
||||||
@param CallbackData EDES_TODO: Add parameter description
|
@param CallbackData The BMM context data.
|
||||||
@param HiiHandle EDES_TODO: Add parameter description
|
@param HiiHandle The HII handle associated with the BMM formset.
|
||||||
@param DescriptionData EDES_TODO: Add parameter description
|
@param DescriptionData The description of this driver option.
|
||||||
@param OptionalData EDES_TODO: Add parameter description
|
@param OptionalData The optional load option.
|
||||||
@param ForceReconnect EDES_TODO: Add parameter description
|
@param ForceReconnect EDES_TODO: Add parameter description
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@retval EFI_OUT_OF_RESOURCES If not enought memory to complete the operation.
|
||||||
|
@retval EFI_SUCCESS If function completes successfully.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
@ -576,7 +602,7 @@ Var_UpdateDriverOption (
|
|||||||
BufferSize += StrSize (OptionalData);
|
BufferSize += StrSize (OptionalData);
|
||||||
}
|
}
|
||||||
|
|
||||||
Buffer = EfiAllocateZeroPool (BufferSize);
|
Buffer = AllocateZeroPool (BufferSize);
|
||||||
if (NULL == Buffer) {
|
if (NULL == Buffer) {
|
||||||
return EFI_OUT_OF_RESOURCES;
|
return EFI_OUT_OF_RESOURCES;
|
||||||
}
|
}
|
||||||
@ -607,7 +633,7 @@ Var_UpdateDriverOption (
|
|||||||
StrSize (DescriptionData)
|
StrSize (DescriptionData)
|
||||||
);
|
);
|
||||||
|
|
||||||
NewLoadContext->Description = EfiAllocateZeroPool (StrSize (DescriptionData));
|
NewLoadContext->Description = AllocateZeroPool (StrSize (DescriptionData));
|
||||||
ASSERT (NewLoadContext->Description != NULL);
|
ASSERT (NewLoadContext->Description != NULL);
|
||||||
NewMenuEntry->DisplayString = NewLoadContext->Description;
|
NewMenuEntry->DisplayString = NewLoadContext->Description;
|
||||||
CopyMem (
|
CopyMem (
|
||||||
@ -623,7 +649,7 @@ Var_UpdateDriverOption (
|
|||||||
GetDevicePathSize (CallbackData->LoadContext->FilePathList)
|
GetDevicePathSize (CallbackData->LoadContext->FilePathList)
|
||||||
);
|
);
|
||||||
|
|
||||||
NewLoadContext->FilePathList = EfiAllocateZeroPool (GetDevicePathSize (CallbackData->LoadContext->FilePathList));
|
NewLoadContext->FilePathList = AllocateZeroPool (GetDevicePathSize (CallbackData->LoadContext->FilePathList));
|
||||||
ASSERT (NewLoadContext->FilePathList != NULL);
|
ASSERT (NewLoadContext->FilePathList != NULL);
|
||||||
|
|
||||||
CopyMem (
|
CopyMem (
|
||||||
@ -669,7 +695,7 @@ Var_UpdateDriverOption (
|
|||||||
&gEfiGlobalVariableGuid,
|
&gEfiGlobalVariableGuid,
|
||||||
&DriverOrderListSize
|
&DriverOrderListSize
|
||||||
);
|
);
|
||||||
NewDriverOrderList = EfiAllocateZeroPool (DriverOrderListSize + sizeof (UINT16));
|
NewDriverOrderList = AllocateZeroPool (DriverOrderListSize + sizeof (UINT16));
|
||||||
ASSERT (NewDriverOrderList != NULL);
|
ASSERT (NewDriverOrderList != NULL);
|
||||||
CopyMem (NewDriverOrderList, DriverOrderList, DriverOrderListSize);
|
CopyMem (NewDriverOrderList, DriverOrderList, DriverOrderListSize);
|
||||||
NewDriverOrderList[DriverOrderListSize / sizeof (UINT16)] = Index;
|
NewDriverOrderList[DriverOrderListSize / sizeof (UINT16)] = Index;
|
||||||
@ -698,14 +724,19 @@ Var_UpdateDriverOption (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
This function create a currently loaded Boot Option from
|
||||||
|
the BMM. It then appends this Boot Option to the end of
|
||||||
|
the "BootOrder" list. It also append this Boot Opotion to the end
|
||||||
|
of BootOptionMenu.
|
||||||
|
|
||||||
@param CallbackData EDES_TODO: Add parameter description
|
@param CallbackData The BMM context data.
|
||||||
@param NvRamMap EDES_TODO: Add parameter description
|
@param NvRamMap The file explorer formset internal state.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@retval EFI_OUT_OF_RESOURCES If not enought memory to complete the operation.
|
||||||
|
@retval EFI_SUCCESS If function completes successfully.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
Var_UpdateBootOption (
|
Var_UpdateBootOption (
|
||||||
IN BMM_CALLBACK_DATA *CallbackData,
|
IN BMM_CALLBACK_DATA *CallbackData,
|
||||||
@ -742,7 +773,7 @@ Var_UpdateBootOption (
|
|||||||
BufferSize += StrSize (NvRamMap->OptionalData);
|
BufferSize += StrSize (NvRamMap->OptionalData);
|
||||||
}
|
}
|
||||||
|
|
||||||
Buffer = EfiAllocateZeroPool (BufferSize);
|
Buffer = AllocateZeroPool (BufferSize);
|
||||||
if (NULL == Buffer) {
|
if (NULL == Buffer) {
|
||||||
return EFI_OUT_OF_RESOURCES;
|
return EFI_OUT_OF_RESOURCES;
|
||||||
}
|
}
|
||||||
@ -773,7 +804,7 @@ Var_UpdateBootOption (
|
|||||||
StrSize (NvRamMap->DescriptionData)
|
StrSize (NvRamMap->DescriptionData)
|
||||||
);
|
);
|
||||||
|
|
||||||
NewLoadContext->Description = EfiAllocateZeroPool (StrSize (NvRamMap->DescriptionData));
|
NewLoadContext->Description = AllocateZeroPool (StrSize (NvRamMap->DescriptionData));
|
||||||
ASSERT (NewLoadContext->Description != NULL);
|
ASSERT (NewLoadContext->Description != NULL);
|
||||||
|
|
||||||
NewMenuEntry->DisplayString = NewLoadContext->Description;
|
NewMenuEntry->DisplayString = NewLoadContext->Description;
|
||||||
@ -790,7 +821,7 @@ Var_UpdateBootOption (
|
|||||||
GetDevicePathSize (CallbackData->LoadContext->FilePathList)
|
GetDevicePathSize (CallbackData->LoadContext->FilePathList)
|
||||||
);
|
);
|
||||||
|
|
||||||
NewLoadContext->FilePathList = EfiAllocateZeroPool (GetDevicePathSize (CallbackData->LoadContext->FilePathList));
|
NewLoadContext->FilePathList = AllocateZeroPool (GetDevicePathSize (CallbackData->LoadContext->FilePathList));
|
||||||
ASSERT (NewLoadContext->FilePathList != NULL);
|
ASSERT (NewLoadContext->FilePathList != NULL);
|
||||||
|
|
||||||
CopyMem (
|
CopyMem (
|
||||||
@ -834,7 +865,7 @@ Var_UpdateBootOption (
|
|||||||
&BootOrderListSize
|
&BootOrderListSize
|
||||||
);
|
);
|
||||||
|
|
||||||
NewBootOrderList = EfiAllocateZeroPool (BootOrderListSize + sizeof (UINT16));
|
NewBootOrderList = AllocateZeroPool (BootOrderListSize + sizeof (UINT16));
|
||||||
ASSERT (NewBootOrderList != NULL);
|
ASSERT (NewBootOrderList != NULL);
|
||||||
CopyMem (NewBootOrderList, BootOrderList, BootOrderListSize);
|
CopyMem (NewBootOrderList, BootOrderList, BootOrderListSize);
|
||||||
NewBootOrderList[BootOrderListSize / sizeof (UINT16)] = Index;
|
NewBootOrderList[BootOrderListSize / sizeof (UINT16)] = Index;
|
||||||
@ -865,11 +896,16 @@ Var_UpdateBootOption (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
This function update the "BootNext" EFI Variable. If there is
|
||||||
|
no "BootNex" specified in BMM, this EFI Variable is deleted.
|
||||||
|
It also update the BMM context data specified the "BootNext"
|
||||||
|
vaule.
|
||||||
|
|
||||||
@param CallbackData EDES_TODO: Add parameter description
|
@param CallbackData The BMM context data.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@retval EFI_SUCCESS The function complete successfully.
|
||||||
|
@return The EFI variable can be saved. See gRT->SetVariable
|
||||||
|
for detail return information.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
@ -887,9 +923,7 @@ Var_UpdateBootNext (
|
|||||||
CurrentFakeNVMap = &CallbackData->BmmFakeNvData;
|
CurrentFakeNVMap = &CallbackData->BmmFakeNvData;
|
||||||
for (Index = 0; Index < BootOptionMenu.MenuNumber; Index++) {
|
for (Index = 0; Index < BootOptionMenu.MenuNumber; Index++) {
|
||||||
NewMenuEntry = BOpt_GetMenuEntry (&BootOptionMenu, Index);
|
NewMenuEntry = BOpt_GetMenuEntry (&BootOptionMenu, Index);
|
||||||
if (NULL == NewMenuEntry) {
|
ASSERT (NULL != NewMenuEntry);
|
||||||
return EFI_NOT_FOUND;
|
|
||||||
}
|
|
||||||
|
|
||||||
NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;
|
NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;
|
||||||
NewLoadContext->IsBootNext = FALSE;
|
NewLoadContext->IsBootNext = FALSE;
|
||||||
@ -904,9 +938,7 @@ Var_UpdateBootNext (
|
|||||||
&BootOptionMenu,
|
&BootOptionMenu,
|
||||||
CurrentFakeNVMap->BootNext
|
CurrentFakeNVMap->BootNext
|
||||||
);
|
);
|
||||||
if (NULL == NewMenuEntry) {
|
ASSERT (NewMenuEntry != NULL);
|
||||||
return EFI_NOT_FOUND;
|
|
||||||
}
|
|
||||||
|
|
||||||
NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;
|
NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;
|
||||||
Status = gRT->SetVariable (
|
Status = gRT->SetVariable (
|
||||||
@ -922,11 +954,16 @@ Var_UpdateBootNext (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
This function update the "BootOrder" EFI Variable based on
|
||||||
|
BMM Formset's NV map. It then refresh BootOptionMenu
|
||||||
|
with the new "BootOrder" list.
|
||||||
|
|
||||||
@param CallbackData EDES_TODO: Add parameter description
|
@param CallbackData The BMM context data.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@retval EFI_SUCCESS The function complete successfully.
|
||||||
|
@retval EFI_SUCCESS Not enough memory to complete the function.
|
||||||
|
@return The EFI variable can be saved. See gRT->SetVariable
|
||||||
|
for detail return information.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
@ -939,7 +976,6 @@ Var_UpdateBootOrder (
|
|||||||
UINT16 *BootOrderList;
|
UINT16 *BootOrderList;
|
||||||
UINT16 *NewBootOrderList;
|
UINT16 *NewBootOrderList;
|
||||||
UINTN BootOrderListSize;
|
UINTN BootOrderListSize;
|
||||||
UINT8 *Map;
|
|
||||||
|
|
||||||
BootOrderList = NULL;
|
BootOrderList = NULL;
|
||||||
BootOrderListSize = 0;
|
BootOrderListSize = 0;
|
||||||
@ -953,15 +989,11 @@ Var_UpdateBootOrder (
|
|||||||
&BootOrderListSize
|
&BootOrderListSize
|
||||||
);
|
);
|
||||||
|
|
||||||
NewBootOrderList = EfiAllocateZeroPool (BootOrderListSize);
|
NewBootOrderList = AllocateZeroPool (BootOrderListSize);
|
||||||
if (NewBootOrderList == NULL) {
|
if (NewBootOrderList == NULL) {
|
||||||
return EFI_OUT_OF_RESOURCES;
|
return EFI_OUT_OF_RESOURCES;
|
||||||
}
|
}
|
||||||
|
|
||||||
Map = EfiAllocateZeroPool (BootOrderListSize / sizeof (UINT16));
|
|
||||||
if (Map == NULL) {
|
|
||||||
return EFI_OUT_OF_RESOURCES;
|
|
||||||
}
|
|
||||||
//
|
//
|
||||||
// If exists, delete it to hold new BootOrder
|
// If exists, delete it to hold new BootOrder
|
||||||
//
|
//
|
||||||
@ -982,7 +1014,6 @@ Var_UpdateBootOrder (
|
|||||||
);
|
);
|
||||||
SafeFreePool (BootOrderList);
|
SafeFreePool (BootOrderList);
|
||||||
SafeFreePool (NewBootOrderList);
|
SafeFreePool (NewBootOrderList);
|
||||||
SafeFreePool (Map);
|
|
||||||
if (EFI_ERROR (Status)) {
|
if (EFI_ERROR (Status)) {
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
@ -995,11 +1026,16 @@ Var_UpdateBootOrder (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
This function update the "DriverOrder" EFI Variable based on
|
||||||
|
BMM Formset's NV map. It then refresh DriverOptionMenu
|
||||||
|
with the new "DriverOrder" list.
|
||||||
|
|
||||||
@param CallbackData EDES_TODO: Add parameter description
|
@param CallbackData The BMM context data.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@retval EFI_SUCCESS The function complete successfully.
|
||||||
|
@retval EFI_SUCCESS Not enough memory to complete the function.
|
||||||
|
@return The EFI variable can be saved. See gRT->SetVariable
|
||||||
|
for detail return information.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
@ -1025,7 +1061,7 @@ Var_UpdateDriverOrder (
|
|||||||
&DriverOrderListSize
|
&DriverOrderListSize
|
||||||
);
|
);
|
||||||
|
|
||||||
NewDriverOrderList = EfiAllocateZeroPool (DriverOrderListSize);
|
NewDriverOrderList = AllocateZeroPool (DriverOrderListSize);
|
||||||
|
|
||||||
if (NewDriverOrderList == NULL) {
|
if (NewDriverOrderList == NULL) {
|
||||||
return EFI_OUT_OF_RESOURCES;
|
return EFI_OUT_OF_RESOURCES;
|
||||||
@ -1060,11 +1096,14 @@ Var_UpdateDriverOrder (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Update the legacy BBS boot option. L"LegacyDevOrder" and EfiLegacyDevOrderGuid EFI Variable
|
||||||
|
is udpated with the new Legacy Boot order. The EFI Variable of "Boot####" and gEfiGlobalVariableGuid
|
||||||
|
is also updated.
|
||||||
|
|
||||||
@param CallbackData EDES_TODO: Add parameter description
|
@param CallbackData The context data for BMM.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@return EFI_SUCCESS The function completed successfully.
|
||||||
|
@retval EFI_NOT_FOUND If L"LegacyDevOrder" and EfiLegacyDevOrderGuid EFI Variable can be found.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
@ -1178,7 +1217,7 @@ Var_UpdateBBSOption (
|
|||||||
return EFI_NOT_FOUND;
|
return EFI_NOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
NewOrder = (UINT16 *) EfiAllocateZeroPool (DevOrder->Length - sizeof (UINT16));
|
NewOrder = (UINT16 *) AllocateZeroPool (DevOrder->Length - sizeof (UINT16));
|
||||||
if (NULL == NewOrder) {
|
if (NULL == NewOrder) {
|
||||||
SafeFreePool (VarData);
|
SafeFreePool (VarData);
|
||||||
return EFI_OUT_OF_RESOURCES;
|
return EFI_OUT_OF_RESOURCES;
|
||||||
@ -1262,7 +1301,7 @@ Var_UpdateBBSOption (
|
|||||||
Ptr += sizeof (UINT16);
|
Ptr += sizeof (UINT16);
|
||||||
Ptr += StrSize ((CHAR16 *) Ptr);
|
Ptr += StrSize ((CHAR16 *) Ptr);
|
||||||
|
|
||||||
NewOptionPtr = EfiAllocateZeroPool (NewOptionSize);
|
NewOptionPtr = AllocateZeroPool (NewOptionSize);
|
||||||
if (NULL == NewOptionPtr) {
|
if (NULL == NewOptionPtr) {
|
||||||
return EFI_OUT_OF_RESOURCES;
|
return EFI_OUT_OF_RESOURCES;
|
||||||
}
|
}
|
||||||
@ -1364,11 +1403,12 @@ Var_UpdateBBSOption (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
EDES_TODO: Add function description.
|
Update the Text Mode of Console.
|
||||||
|
|
||||||
@param CallbackData EDES_TODO: Add parameter description
|
@param CallbackData The context data for BMM.
|
||||||
|
|
||||||
@return EDES_TODO: Add description for return value
|
@retval EFI_SUCCSS If the Text Mode of Console is updated.
|
||||||
|
@return Other value if the Text Mode of Console is not updated.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
|
Loading…
x
Reference in New Issue
Block a user