audk/MdeModulePkg/Library/UefiBootManagerLib
Ruiyu Ni 08eff91788 MdeModulePkg/UefiBootManagerLib: Enhance short-form expanding logic
Old implementation only finds first matched full device path for a
given short-form device path.
The patch adds internal function BmGetNextLoadOptionBuffer() to finds
all matched full device path for a given short-form device path.
There are 6 kinds of device paths. Some of them match to multiple
load options, some of them don't.

1. Media device path:
   Returns multiple load options: The media device path may point
   to a physical BlockIo which contains multiple logic partitions,
   each logic partitions contains \EFI\BOOT\BOOT${ARCH}.EFI.

2. Short-form hard-drive device path:
   Returns one load option because the partition signature is unique.

3. Short-form file-path device path:
   Returns multiple load options: There are multiple SimpleFileSystem
   instances and each contains the same file.

4. Short-form URI device path:
   Returns multiple load options: There are multiple LoadFile
   instances and each can boot.

5. Short-form USB device path:
   Returns multiple load options: There are multiple UsbIo instances
   and each contains the boot-able file.

6. FV device path, device path pointing to SimpleFileSystem, device
   path pointing to LoadFile
   Returns one load option.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Jeff Fan <jeff.fan@intel.com>
2017-04-07 11:06:12 +08:00
..
BmBoot.c MdeModulePkg/UefiBootManagerLib: Enhance short-form expanding logic 2017-04-07 11:06:12 +08:00
BmBootDescription.c MdeModulePkg/UefiBootManagerLib: Generate boot description for NVME 2017-03-13 10:42:21 +08:00
BmConnect.c MdeModulePkg: Fix EOL to be DOS format. 2015-05-13 02:23:44 +00:00
BmConsole.c MdeModulePkg/UefiBootManagerLib: rebase to ARRAY_SIZE() 2016-10-27 11:10:56 +02:00
BmDriverHealth.c MdeModulePkg: Use IsZeroGuid API for zero GUID checking 2016-08-31 11:14:01 +08:00
BmHotkey.c MdeModulePkg: Use EfiEventEmptyFunction from UefiLib 2017-01-20 15:51:18 +08:00
BmLoadOption.c MdeModulePkg/UefiBootManagerLib: Enhance short-form expanding logic 2017-04-07 11:06:12 +08:00
BmMisc.c MdeModulePkg: Refine casting expression result to bigger size 2017-03-06 14:33:20 +08:00
BmPerformance.c MdeModulePkg BmPerf: Handle "/" separator in debug path for GCC build 2017-03-16 11:08:52 +08:00
InternalBm.h MdeModulePkg/UefiBootManagerLib: Enhance short-form expanding logic 2017-04-07 11:06:12 +08:00
UefiBootManagerLib.inf MdeModulePkg/UefiBootManagerLib: Generate boot description for NVME 2017-03-13 10:42:21 +08:00
UefiBootManagerLib.uni MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00