efi_loader: drop redundant efi_device_path_protocol

This is really the same thing as the efi_device_path struct.

Signed-off-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
Rob Clark 2017-09-13 18:05:29 -04:00 committed by Alexander Graf
parent b66c60dde9
commit 9309a1b76c
2 changed files with 10 additions and 15 deletions

View file

@ -487,22 +487,14 @@ struct efi_console_control_protocol
EFI_GUID(0x8b843e20, 0x8132, 0x4852, \ EFI_GUID(0x8b843e20, 0x8132, 0x4852, \
0x90, 0xcc, 0x55, 0x1a, 0x4e, 0x4a, 0x7f, 0x1c) 0x90, 0xcc, 0x55, 0x1a, 0x4e, 0x4a, 0x7f, 0x1c)
struct efi_device_path_protocol
{
uint8_t type;
uint8_t sub_type;
uint16_t length;
uint8_t data[];
};
struct efi_device_path_to_text_protocol struct efi_device_path_to_text_protocol
{ {
uint16_t *(EFIAPI *convert_device_node_to_text)( uint16_t *(EFIAPI *convert_device_node_to_text)(
struct efi_device_path_protocol *device_node, struct efi_device_path *device_node,
bool display_only, bool display_only,
bool allow_shortcuts); bool allow_shortcuts);
uint16_t *(EFIAPI *convert_device_path_to_text)( uint16_t *(EFIAPI *convert_device_path_to_text)(
struct efi_device_path_protocol *device_path, struct efi_device_path *device_path,
bool display_only, bool display_only,
bool allow_shortcuts); bool allow_shortcuts);
}; };

View file

@ -16,7 +16,7 @@ const efi_guid_t efi_guid_device_path_to_text_protocol =
EFI_DEVICE_PATH_TO_TEXT_PROTOCOL_GUID; EFI_DEVICE_PATH_TO_TEXT_PROTOCOL_GUID;
static uint16_t *efi_convert_device_node_to_text( static uint16_t *efi_convert_device_node_to_text(
struct efi_device_path_protocol *device_node, struct efi_device_path *device_node,
bool display_only, bool display_only,
bool allow_shortcuts) bool allow_shortcuts)
{ {
@ -55,15 +55,18 @@ static uint16_t *efi_convert_device_node_to_text(
break; break;
case DEVICE_PATH_TYPE_MEDIA_DEVICE: case DEVICE_PATH_TYPE_MEDIA_DEVICE:
switch (device_node->sub_type) { switch (device_node->sub_type) {
case DEVICE_PATH_SUB_TYPE_FILE_PATH: case DEVICE_PATH_SUB_TYPE_FILE_PATH: {
struct efi_device_path_file_path *fp =
(struct efi_device_path_file_path *)device_node;
buffer_size = device_node->length - 4; buffer_size = device_node->length - 4;
r = efi_allocate_pool(EFI_ALLOCATE_ANY_PAGES, r = efi_allocate_pool(EFI_ALLOCATE_ANY_PAGES,
buffer_size, (void **) &buffer); buffer_size, (void **) &buffer);
if (r != EFI_SUCCESS) if (r != EFI_SUCCESS)
return NULL; return NULL;
memcpy(buffer, device_node->data, buffer_size); memcpy(buffer, fp->str, buffer_size);
break; break;
} }
}
break; break;
} }
@ -89,7 +92,7 @@ static uint16_t *efi_convert_device_node_to_text(
} }
static uint16_t EFIAPI *efi_convert_device_node_to_text_ext( static uint16_t EFIAPI *efi_convert_device_node_to_text_ext(
struct efi_device_path_protocol *device_node, struct efi_device_path *device_node,
bool display_only, bool display_only,
bool allow_shortcuts) bool allow_shortcuts)
{ {
@ -105,7 +108,7 @@ static uint16_t EFIAPI *efi_convert_device_node_to_text_ext(
} }
static uint16_t EFIAPI *efi_convert_device_path_to_text( static uint16_t EFIAPI *efi_convert_device_path_to_text(
struct efi_device_path_protocol *device_path, struct efi_device_path *device_path,
bool display_only, bool display_only,
bool allow_shortcuts) bool allow_shortcuts)
{ {