mirror of
https://xff.cz/git/u-boot/
synced 2025-09-02 01:02:19 +02:00
efi_loader: disk: add efi_disk_is_removable()
This helper function will be used to determine if the device is removable media, initially for handling a short-path loading. Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org> Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
This commit is contained in:
committed by
Heinrich Schuchardt
parent
8131c85a77
commit
05f391e2fc
@@ -663,6 +663,9 @@ efi_status_t efi_set_timer(struct efi_event *event, enum efi_timer_delay type,
|
|||||||
/* Call this to signal an event */
|
/* Call this to signal an event */
|
||||||
void efi_signal_event(struct efi_event *event);
|
void efi_signal_event(struct efi_event *event);
|
||||||
|
|
||||||
|
/* return true if the device is removable */
|
||||||
|
bool efi_disk_is_removable(efi_handle_t handle);
|
||||||
|
|
||||||
/* open file system: */
|
/* open file system: */
|
||||||
struct efi_simple_file_system_protocol *efi_simple_file_system(
|
struct efi_simple_file_system_protocol *efi_simple_file_system(
|
||||||
struct blk_desc *desc, int part, struct efi_device_path *dp);
|
struct blk_desc *desc, int part, struct efi_device_path *dp);
|
||||||
|
@@ -73,6 +73,33 @@ static efi_status_t EFIAPI efi_disk_reset(struct efi_block_io *this,
|
|||||||
return EFI_EXIT(EFI_SUCCESS);
|
return EFI_EXIT(EFI_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* efi_disk_is_removable() - check if the device is removable media
|
||||||
|
* @handle: efi object handle;
|
||||||
|
*
|
||||||
|
* Examine the device and determine if the device is a local block device
|
||||||
|
* and removable media.
|
||||||
|
*
|
||||||
|
* Return: true if removable, false otherwise
|
||||||
|
*/
|
||||||
|
bool efi_disk_is_removable(efi_handle_t handle)
|
||||||
|
{
|
||||||
|
struct efi_handler *handler;
|
||||||
|
struct efi_block_io *io;
|
||||||
|
efi_status_t ret;
|
||||||
|
|
||||||
|
ret = efi_search_protocol(handle, &efi_block_io_guid, &handler);
|
||||||
|
if (ret != EFI_SUCCESS)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
io = handler->protocol_interface;
|
||||||
|
|
||||||
|
if (!io || !io->media)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return (bool)io->media->removable_media;
|
||||||
|
}
|
||||||
|
|
||||||
enum efi_disk_direction {
|
enum efi_disk_direction {
|
||||||
EFI_DISK_READ,
|
EFI_DISK_READ,
|
||||||
EFI_DISK_WRITE,
|
EFI_DISK_WRITE,
|
||||||
|
Reference in New Issue
Block a user