return EFI_UNSUPPORTED;\r
}\r
//\r
- // Notes: if we seperate the int 19, then we don't need to refresh BBS\r
+ // Notes: if we separate the int 19, then we don't need to refresh BBS\r
//\r
BdsRefreshBbsTableForBoot (Option);\r
\r
\r
\r
/**\r
- Process the boot option follow the EFI 1.1 specification and\r
+ Process the boot option follow the UEFI specification and\r
special treat the legacy boot option with BBS_DEVICE_PATH.\r
\r
@param Option The boot option need to be processed\r
@param DevicePath The device path which describe where to load the\r
- boot image or the legcy BBS device path to boot\r
+ boot image or the legacy BBS device path to boot\r
the legacy OS\r
- @param ExitDataSize Returned directly from gBS->StartImage ()\r
- @param ExitData Returned directly from gBS->StartImage ()\r
+ @param ExitDataSize The size of exit data.\r
+ @param ExitData Data returned when Boot image failed.\r
\r
- @retval EFI_SUCCESS Status from gBS->StartImage ()\r
+ @retval EFI_SUCCESS Boot from the input boot option successfully.\r
@retval EFI_NOT_FOUND If the Device Path is not found in the system\r
\r
**/\r
FreePool(Option->DevicePath);\r
}\r
Option->DevicePath = AllocateZeroPool (GetDevicePathSize (DevicePath));\r
+ ASSERT(Option->DevicePath != NULL);\r
CopyMem (Option->DevicePath, DevicePath, GetDevicePathSize (DevicePath));\r
//\r
// Update the shell boot option\r
/**\r
Expand a device path that starts with a hard drive media device path node to be a\r
full device path that includes the full hardware path to the device. We need\r
- to do this so it can be booted. As an optimizaiton the front match (the part point\r
+ to do this so it can be booted. As an optimization the front match (the part point\r
to the partition node. E.g. ACPI() /PCI()/ATA()/Partition() ) is saved in a variable\r
so a connect all is not required on every boot. All successful history device path\r
which point to partition node (the front part) will be saved.\r
do {\r
//\r
// Check every instance of the variable\r
- // First, check wheather the instance contain the partition node, which is needed for distinguishing multi\r
- // partial partition boot option. Second, check wheather the instance could be connected.\r
+ // First, check whether the instance contain the partition node, which is needed for distinguishing multi\r
+ // partial partition boot option. Second, check whether the instance could be connected.\r
//\r
Instance = GetNextDevicePathInstance (&TempNewDevicePath, &Size);\r
if (MatchPartitionDevicePathNode (Instance, HardDriveDevicePath)) {\r
if (DeviceExist) {\r
//\r
// Find the matched device path.\r
- // Append the file path infomration from the boot option and return the fully expanded device path.\r
+ // Append the file path information from the boot option and return the fully expanded device path.\r
//\r
DevicePath = NextDevicePathNode ((EFI_DEVICE_PATH_PROTOCOL *) HardDriveDevicePath);\r
FullDevicePath = AppendDevicePath (Instance, DevicePath);\r
\r
//\r
- // Adjust the 'HDDP' instances sequense if the matched one is not first one.\r
+ // Adjust the 'HDDP' instances sequence if the matched one is not first one.\r
//\r
if (NeedAdjust) {\r
//\r
FreePool (TempNewDevicePath);\r
\r
//\r
- // Second, append the remaining parth after the matched instance\r
+ // Second, append the remaining path after the matched instance\r
//\r
TempNewDevicePath = CachedDevicePath;\r
CachedDevicePath = AppendDevicePathInstance (Instance, CachedDevicePath );\r
\r
//\r
// If we get here we fail to find or 'HDDP' not exist, and now we need\r
- // to seach all devices in the system for a matched partition\r
+ // to search all devices in the system for a matched partition\r
//\r
BdsLibConnectAllDriversToAllControllers ();\r
Status = gBS->LocateHandleBuffer (ByProtocol, &gEfiBlockIoProtocolGuid, NULL, &BlockIoHandleCount, &BlockIoBuffer);\r
FullDevicePath = AppendDevicePath (BlockIoDevicePath, DevicePath);\r
\r
//\r
- // Save the matched patition device path in 'HDDP' variable\r
+ // Save the matched partition device path in 'HDDP' variable\r
//\r
if (CachedDevicePath != NULL) {\r
//\r
- // Save the matched patition device path as first instance of 'HDDP' variable\r
+ // Save the matched partition device path as first instance of 'HDDP' variable\r
//\r
if (BdsLibMatchDevicePaths (CachedDevicePath, BlockIoDevicePath)) {\r
TempNewDevicePath = CachedDevicePath;\r
}\r
//\r
// Here limit the device path instance number to 12, which is max number for a system support 3 IDE controller\r
- // If the user try to boot many OS in different HDs or partitions, in theary, the 'HDDP' variable maybe become larger and larger.\r
+ // If the user try to boot many OS in different HDs or partitions, in theory, the 'HDDP' variable maybe become larger and larger.\r
//\r
InstanceNum = 0;\r
TempNewDevicePath = CachedDevicePath;\r
@param HardDriveDevicePath A device path which starts with a hard drive media\r
device path.\r
\r
- @retval TRUE There is a matched device path instance FALSE\r
- @retval FALSE There is no matched device path instance\r
+ @retval TRUE There is a matched device path instance.\r
+ @retval FALSE There is no matched device path instance.\r
\r
**/\r
BOOLEAN\r
\r
/**\r
This function will enumerate all possible boot device in the system,\r
- it will only excute once of every boot.\r
+ it will only execute once of every boot.\r
\r
@param BdsBootOptionList The header of the link list which indexed all\r
current boot options\r
}\r
\r
/**\r
- Build the boot option with the handle parsed in.\r
+ Build the boot option with the handle parsed in\r
\r
@param Handle The handle which present the device path to create\r
boot option\r
@param BdsBootOptionList The header of the link list which indexed all\r
current boot options\r
- @param String Boot option name.\r
+ @param String The description of the boot option.\r
\r
**/\r
VOID\r
}\r
\r
/**\r
- Boot from the EFI1.1 spec defined "BootNext" variable\r
+ Boot from the UEFI spec defined "BootNext" variable.\r
\r
**/\r
VOID\r
\r
@param DevicePath Device Path to a bootable device\r
\r
- @retval NULL The device path points to an EFI bootable Media\r
@retval NULL The media on the DevicePath is not bootable\r
\r
**/\r
}\r
} else {\r
//\r
- // Get BlockIo protocal and check removable attribute\r
+ // Get BlockIo protocol and check removable attribute\r
//\r
Status = gBS->HandleProtocol (Handle, &gEfiBlockIoProtocolGuid, (VOID **)&BlockIo);\r
//\r
\r
//\r
// If fail to get bootable handle specified by a USB boot option, the BDS should try to find other bootable device in the same USB bus\r
- // Try to locate the USB node device path first, if fail then use its previour PCI node to search\r
+ // Try to locate the USB node device path first, if fail then use its previous PCI node to search\r
//\r
DupDevicePath = DuplicateDevicePath (DevicePath);\r
ASSERT (DupDevicePath != NULL);\r
\r
@param DevicePath The bootable device Path to check\r
\r
- @retval BDS_EFI_MEDIA_HD_BOOT If the device path contains any media deviec path node, it is media boot type\r
+ @retval BDS_EFI_MEDIA_HD_BOOT If the device path contains any media device path node, it is media boot type\r
For the floppy node, handle it as media node\r
- @retval BDS_EFI_MEDIA_CDROM_BOOT If the device path contains any media deviec path node, it is media boot type\r
+ @retval BDS_EFI_MEDIA_CDROM_BOOT If the device path contains any media device path node, it is media boot type\r
For the floppy node, handle it as media node\r
- @retval BDS_EFI_ACPI_FLOPPY_BOOT If the device path contains any media deviec path node, it is media boot type\r
+ @retval BDS_EFI_ACPI_FLOPPY_BOOT If the device path contains any media device path node, it is media boot type\r
For the floppy node, handle it as media node\r
- @retval BDS_EFI_MESSAGE_ATAPI_BOOT If the device path not contains any media deviec path node, and\r
+ @retval BDS_EFI_MESSAGE_ATAPI_BOOT If the device path not contains any media device path node, and\r
its last device path node point to a message device path node, it is\r
\r
- @retval BDS_EFI_MESSAGE_SCSI_BOOT If the device path not contains any media deviec path node, and\r
+ @retval BDS_EFI_MESSAGE_SCSI_BOOT If the device path not contains any media device path node, and\r
its last device path node point to a message device path node, it is\r
- @retval BDS_EFI_MESSAGE_USB_DEVICE_BOOT If the device path not contains any media deviec path node, and\r
+ @retval BDS_EFI_MESSAGE_USB_DEVICE_BOOT If the device path not contains any media device path node, and\r
its last device path node point to a message device path node, it is\r
- @retval BDS_EFI_MESSAGE_MISC_BOOT If the device path not contains any media deviec path node, and\r
+ @retval BDS_EFI_MESSAGE_MISC_BOOT If the device path not contains any media device path node, and\r
its last device path node point to a message device path node, it is\r
@retval BDS_LEGACY_BBS_BOOT Legacy boot type\r
- @retval BDS_EFI_UNSUPPORT An EFI Removable BlockIO device path not point to a media and message devie, \r
+ @retval BDS_EFI_UNSUPPORT An EFI Removable BlockIO device path not point to a media and message device, \r
\r
**/\r
UINT32\r
}\r
\r
/**\r
- Check whether the Device path in a boot option point to a valide bootable device,\r
+ Check whether the Device path in a boot option point to a valid bootable device,\r
And if CheckMedia is true, check the device is ready to boot now.\r
\r
- @param DevPath the Device path in a boot option\r
- @param CheckMedia if true, check the device is ready to boot now.\r
+ @param DevPath the Device path in a boot option\r
+ @param CheckMedia if true, check the device is ready to boot now.\r
\r
- @retval TRUE the Device path is valide\r
- @retval FALSE the Device path is invalide .\r
+ @retval TRUE the Device path is valid\r
+ @retval FALSE the Device path is invalid .\r
\r
**/\r
BOOLEAN\r
/**\r
According to a file guild, check a Fv file device path is valid. If it is invalid,\r
try to return the valid device path.\r
- FV address maybe changes for memory layout adjust from time to time, use this funciton\r
+ FV address maybe changes for memory layout adjust from time to time, use this function\r
could promise the Fv file device path is right.\r
\r
@param DevicePath on input, the Fv file device path need to check on\r
EFIAPI\r
BdsLibUpdateFvFileDevicePath (\r
IN OUT EFI_DEVICE_PATH_PROTOCOL ** DevicePath,\r
- IN EFI_GUID *FileGuid\r
+ IN EFI_GUID *FileGuid\r
)\r
{\r
EFI_DEVICE_PATH_PROTOCOL *TempDevicePath;\r