mirror of https://github.com/acidanthera/audk.git
MdeModulePkg/UefiBootManagerLib: Expose *GetLoadOptionBuffer() API
Expose EfiBootManagerGetLoadOptionBuffer() API. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com>
This commit is contained in:
parent
d0a23f9f86
commit
4ed2440d44
|
@ -1,7 +1,7 @@
|
|||
/** @file
|
||||
Provide Boot Manager related library APIs.
|
||||
|
||||
Copyright (c) 2011 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2011 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||
(C) Copyright 2015-2016 Hewlett Packard Enterprise Development LP<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
|
@ -431,6 +431,27 @@ EfiBootManagerGetBootManagerMenu (
|
|||
EFI_BOOT_MANAGER_LOAD_OPTION *BootOption
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
Get the load option by its device path.
|
||||
|
||||
@param FilePath The device path pointing to a load option.
|
||||
It could be a short-form device path.
|
||||
@param FullPath Return the full device path of the load option after
|
||||
short-form device path expanding.
|
||||
Caller is responsible to free it.
|
||||
@param FileSize Return the load option size.
|
||||
|
||||
@return The load option buffer. Caller is responsible to free the memory.
|
||||
**/
|
||||
VOID *
|
||||
EFIAPI
|
||||
EfiBootManagerGetLoadOptionBuffer (
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *FilePath,
|
||||
OUT EFI_DEVICE_PATH_PROTOCOL **FullPath,
|
||||
OUT UINTN *FileSize
|
||||
);
|
||||
|
||||
/**
|
||||
The function enumerates all the legacy boot options, creates them and
|
||||
registers them in the BootOrder variable.
|
||||
|
|
|
@ -586,7 +586,7 @@ BmExpandUsbDevicePath (
|
|||
|
||||
for (Index = 0; (Index < HandleCount) && (FileBuffer == NULL); Index++) {
|
||||
FullDevicePath = AppendDevicePath (DevicePathFromHandle (Handles[Index]), RemainingDevicePath);
|
||||
FileBuffer = BmGetLoadOptionBuffer (FullDevicePath, FullPath, FileSize);
|
||||
FileBuffer = EfiBootManagerGetLoadOptionBuffer (FullDevicePath, FullPath, FileSize);
|
||||
FreePool (FullDevicePath);
|
||||
}
|
||||
|
||||
|
@ -851,7 +851,7 @@ BmExpandPartitionDevicePath (
|
|||
Status = EfiBootManagerConnectDevicePath (Instance, NULL);
|
||||
if (!EFI_ERROR (Status)) {
|
||||
TempDevicePath = AppendDevicePath (Instance, NextDevicePathNode (FilePath));
|
||||
FileBuffer = BmGetLoadOptionBuffer (TempDevicePath, FullPath, FileSize);
|
||||
FileBuffer = EfiBootManagerGetLoadOptionBuffer (TempDevicePath, FullPath, FileSize);
|
||||
FreePool (TempDevicePath);
|
||||
|
||||
if (FileBuffer != NULL) {
|
||||
|
@ -911,7 +911,7 @@ BmExpandPartitionDevicePath (
|
|||
// Find the matched partition device path
|
||||
//
|
||||
TempDevicePath = AppendDevicePath (BlockIoDevicePath, NextDevicePathNode (FilePath));
|
||||
FileBuffer = BmGetLoadOptionBuffer (TempDevicePath, FullPath, FileSize);
|
||||
FileBuffer = EfiBootManagerGetLoadOptionBuffer (TempDevicePath, FullPath, FileSize);
|
||||
FreePool (TempDevicePath);
|
||||
|
||||
if (FileBuffer != NULL) {
|
||||
|
@ -1425,7 +1425,8 @@ BmGetFileBufferFromLoadFiles (
|
|||
@return The load option buffer. Caller is responsible to free the memory.
|
||||
**/
|
||||
VOID *
|
||||
BmGetLoadOptionBuffer (
|
||||
EFIAPI
|
||||
EfiBootManagerGetLoadOptionBuffer (
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *FilePath,
|
||||
OUT EFI_DEVICE_PATH_PROTOCOL **FullPath,
|
||||
OUT UINTN *FileSize
|
||||
|
@ -1648,7 +1649,7 @@ EfiBootManagerBoot (
|
|||
RamDiskDevicePath = NULL;
|
||||
if (DevicePathType (BootOption->FilePath) != BBS_DEVICE_PATH) {
|
||||
Status = EFI_NOT_FOUND;
|
||||
FileBuffer = BmGetLoadOptionBuffer (BootOption->FilePath, &FilePath, &FileSize);
|
||||
FileBuffer = EfiBootManagerGetLoadOptionBuffer (BootOption->FilePath, &FilePath, &FileSize);
|
||||
if (FileBuffer != NULL) {
|
||||
RamDiskDevicePath = BmGetRamDiskDevicePath (FilePath);
|
||||
}
|
||||
|
|
|
@ -1281,7 +1281,7 @@ EfiBootManagerProcessLoadOption (
|
|||
mBmLoadOptionName[LoadOption->OptionType], LoadOption->OptionNumber
|
||||
));
|
||||
ImageHandle = NULL;
|
||||
FileBuffer = BmGetLoadOptionBuffer (LoadOption->FilePath, &FilePath, &FileSize);
|
||||
FileBuffer = EfiBootManagerGetLoadOptionBuffer (LoadOption->FilePath, &FilePath, &FileSize);
|
||||
DEBUG_CODE (
|
||||
if (FileBuffer != NULL && CompareMem (LoadOption->FilePath, FilePath, GetDevicePathSize (FilePath)) != 0) {
|
||||
DEBUG ((EFI_D_INFO, "[Bds] DevicePath expand: "));
|
||||
|
|
|
@ -310,25 +310,6 @@ BmSetVariableAndReportStatusCodeOnError (
|
|||
IN VOID *Data
|
||||
);
|
||||
|
||||
/**
|
||||
Get the load option by its device path.
|
||||
|
||||
@param FilePath The device path pointing to a load option.
|
||||
It could be a short-form device path.
|
||||
@param FullPath Return the full device path of the load option after
|
||||
short-form device path expanding.
|
||||
Caller is responsible to free it.
|
||||
@param FileSize Return the load option size.
|
||||
|
||||
@return The load option buffer. Caller is responsible to free the memory.
|
||||
**/
|
||||
VOID *
|
||||
BmGetLoadOptionBuffer (
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *FilePath,
|
||||
OUT EFI_DEVICE_PATH_PROTOCOL **FullPath,
|
||||
OUT UINTN *FileSize
|
||||
);
|
||||
|
||||
/**
|
||||
Return whether the PE header of the load option is valid or not.
|
||||
|
||||
|
|
Loading…
Reference in New Issue