efi_selftest: test getinfo(EFI_FILE_SYSTEM_INFO)
Check that the getinfo() service of the file protocol correctly returns the partion label. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
db851c84c9
commit
1348c17ab2
@ -29,6 +29,7 @@ static const efi_guid_t block_io_protocol_guid = BLOCK_IO_GUID;
|
||||
static const efi_guid_t guid_device_path = DEVICE_PATH_GUID;
|
||||
static const efi_guid_t guid_simple_file_system_protocol =
|
||||
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID;
|
||||
static const efi_guid_t guid_file_system_info = EFI_FILE_SYSTEM_INFO_GUID;
|
||||
static efi_guid_t guid_vendor =
|
||||
EFI_GUID(0xdbca4c98, 0x6cb0, 0x694d,
|
||||
0x08, 0x72, 0x81, 0x9c, 0x65, 0x0c, 0xb7, 0xb8);
|
||||
@ -302,6 +303,10 @@ static int execute(void)
|
||||
struct efi_device_path *dp_partition;
|
||||
struct efi_simple_file_system_protocol *file_system;
|
||||
struct efi_file_handle *root, *file;
|
||||
struct {
|
||||
struct efi_file_system_info info;
|
||||
u16 label[12];
|
||||
} system_info;
|
||||
efi_uintn_t buf_size;
|
||||
char buf[16] __aligned(ARCH_DMA_MINALIGN);
|
||||
|
||||
@ -356,6 +361,23 @@ static int execute(void)
|
||||
efi_st_error("Failed to open volume\n");
|
||||
return EFI_ST_FAILURE;
|
||||
}
|
||||
buf_size = sizeof(system_info);
|
||||
ret = root->getinfo(root, &guid_file_system_info, &buf_size,
|
||||
&system_info);
|
||||
if (ret != EFI_SUCCESS) {
|
||||
efi_st_error("Failed to get file system info\n");
|
||||
return EFI_ST_FAILURE;
|
||||
}
|
||||
if (system_info.info.block_size != 512) {
|
||||
efi_st_error("Wrong block size %u, expected 512\n",
|
||||
system_info.info.block_size);
|
||||
return EFI_ST_FAILURE;
|
||||
}
|
||||
if (efi_st_strcmp_16_8(system_info.info.volume_label, "U-BOOT TEST")) {
|
||||
efi_st_todo(
|
||||
"Wrong volume label '%ps', expected 'U-BOOT TEST'\n",
|
||||
system_info.info.volume_label);
|
||||
}
|
||||
ret = root->open(root, &file, (s16 *)L"hello.txt", EFI_FILE_MODE_READ,
|
||||
0);
|
||||
if (ret != EFI_SUCCESS) {
|
||||
|
Loading…
Reference in New Issue
Block a user