mirror of https://github.com/acidanthera/audk.git
08eff91788
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> |
||
---|---|---|
.. | ||
AuthVariableLibNull | ||
BaseIpmiLibNull | ||
BasePlatformHookLibNull | ||
BaseResetSystemLibNull | ||
BaseSerialPortLib16550 | ||
BaseSortLib | ||
BootLogoLib | ||
BootMaintenanceManagerUiLib | ||
BootManagerUiLib | ||
BrotliCustomDecompressLib | ||
CpuExceptionHandlerLibNull | ||
CustomizedDisplayLib | ||
DebugAgentLibNull | ||
DeviceManagerUiLib | ||
DxeCapsuleLibFmp | ||
DxeCapsuleLibNull | ||
DxeCoreMemoryAllocationLib | ||
DxeCorePerformanceLib | ||
DxeCrc32GuidedSectionExtractLib | ||
DxeDebugPrintErrorLevelLib | ||
DxeDpcLib | ||
DxeFileExplorerProtocol | ||
DxeHttpLib | ||
DxeIpIoLib | ||
DxeIpmiLibIpmiProtocol | ||
DxeNetLib | ||
DxePerformanceLib | ||
DxePrintLibPrint2Protocol | ||
DxeReportStatusCodeLib | ||
DxeSecurityManagementLib | ||
DxeSmmPerformanceLib | ||
DxeTcpIoLib | ||
DxeUdpIoLib | ||
FileExplorerLib | ||
FmpAuthenticationLibNull | ||
FrameBufferBltLib | ||
LockBoxNullLib | ||
LzmaCustomDecompressLib | ||
NonDiscoverableDeviceRegistrationLib | ||
OemHookStatusCodeLibNull | ||
PciHostBridgeLibNull | ||
PeiCrc32GuidedSectionExtractLib | ||
PeiDebugPrintHobLib | ||
PeiDxeDebugLibReportStatusCode | ||
PeiIpmiLibIpmiPpi | ||
PeiPerformanceLib | ||
PeiRecoveryLibNull | ||
PeiReportStatusCodeLib | ||
PeiS3LibNull | ||
PiDxeS3BootScriptLib | ||
PiSmmCoreMemoryAllocationLib | ||
PiSmmCoreSmmServicesTableLib | ||
PlatformBootManagerLibNull | ||
PlatformHookLibSerialPortPpi | ||
PlatformVarCleanupLib | ||
RuntimeDxeReportStatusCodeLib | ||
SmmCorePerformanceLib | ||
SmmCorePlatformHookLibNull | ||
SmmIpmiLibSmmIpmiProtocol | ||
SmmLockBoxLib | ||
SmmMemoryAllocationProfileLib | ||
SmmPerformanceLib | ||
SmmReportStatusCodeLib | ||
SmmSmiHandlerProfileLib | ||
TpmMeasurementLibNull | ||
UefiBootManagerLib | ||
UefiHiiLib | ||
UefiHiiServicesLib | ||
UefiMemoryAllocationProfileLib | ||
UefiSortLib | ||
VarCheckHiiLib | ||
VarCheckLib | ||
VarCheckPcdLib | ||
VarCheckUefiLib |