mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
efi_selftest: multi part device path to text
Test EFI_DEVICE_PATH_TO_TEXT_PROTOCOL.ConvertDevicePathToText() for a multi part device path. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
This commit is contained in:
parent
512f092da2
commit
1edfc3fa9b
1 changed files with 65 additions and 0 deletions
|
@ -45,6 +45,55 @@ static u8 *dp1;
|
||||||
static u8 *dp2;
|
static u8 *dp2;
|
||||||
static u8 *dp3;
|
static u8 *dp3;
|
||||||
|
|
||||||
|
static struct {
|
||||||
|
struct efi_device_path_sd_mmc_path sd1;
|
||||||
|
struct efi_device_path sep1;
|
||||||
|
struct efi_device_path_sd_mmc_path sd2;
|
||||||
|
struct efi_device_path sep2;
|
||||||
|
struct efi_device_path_sd_mmc_path sd3;
|
||||||
|
struct efi_device_path end;
|
||||||
|
} multi_part_dp = {
|
||||||
|
{
|
||||||
|
{
|
||||||
|
DEVICE_PATH_TYPE_MESSAGING_DEVICE,
|
||||||
|
DEVICE_PATH_SUB_TYPE_MSG_SD,
|
||||||
|
sizeof(struct efi_device_path_sd_mmc_path),
|
||||||
|
},
|
||||||
|
0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
DEVICE_PATH_TYPE_END,
|
||||||
|
DEVICE_PATH_SUB_TYPE_INSTANCE_END,
|
||||||
|
sizeof(struct efi_device_path),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
{
|
||||||
|
DEVICE_PATH_TYPE_MESSAGING_DEVICE,
|
||||||
|
DEVICE_PATH_SUB_TYPE_MSG_SD,
|
||||||
|
sizeof(struct efi_device_path_sd_mmc_path),
|
||||||
|
},
|
||||||
|
1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
DEVICE_PATH_TYPE_END,
|
||||||
|
DEVICE_PATH_SUB_TYPE_INSTANCE_END,
|
||||||
|
sizeof(struct efi_device_path),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
{
|
||||||
|
DEVICE_PATH_TYPE_MESSAGING_DEVICE,
|
||||||
|
DEVICE_PATH_SUB_TYPE_MSG_SD,
|
||||||
|
sizeof(struct efi_device_path_sd_mmc_path),
|
||||||
|
},
|
||||||
|
2,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
DEVICE_PATH_TYPE_END,
|
||||||
|
DEVICE_PATH_SUB_TYPE_END,
|
||||||
|
sizeof(struct efi_device_path),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
struct efi_device_path_to_text_protocol *device_path_to_text;
|
struct efi_device_path_to_text_protocol *device_path_to_text;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -340,6 +389,22 @@ static int execute(void)
|
||||||
return EFI_ST_FAILURE;
|
return EFI_ST_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
string = device_path_to_text->convert_device_path_to_text(
|
||||||
|
(struct efi_device_path *)&multi_part_dp, true, false);
|
||||||
|
if (efi_st_strcmp_16_8(
|
||||||
|
string,
|
||||||
|
"/SD(0),/SD(1),/SD(2)")
|
||||||
|
) {
|
||||||
|
efi_st_printf("multi_part_dp: %ps\n", string);
|
||||||
|
efi_st_error("Incorrect text from ConvertDevicePathToText\n");
|
||||||
|
return EFI_ST_FAILURE;
|
||||||
|
}
|
||||||
|
ret = boottime->free_pool(string);
|
||||||
|
if (ret != EFI_SUCCESS) {
|
||||||
|
efi_st_error("FreePool failed\n");
|
||||||
|
return EFI_ST_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
/* Test ConvertDeviceNodeToText */
|
/* Test ConvertDeviceNodeToText */
|
||||||
string = device_path_to_text->convert_device_node_to_text(
|
string = device_path_to_text->convert_device_node_to_text(
|
||||||
(struct efi_device_path *)&dp_node, true, false);
|
(struct efi_device_path *)&dp_node, true, false);
|
||||||
|
|
Loading…
Reference in a new issue