diff options
author | Tom Rini <trini@konsulko.com> | 2021-07-13 09:42:19 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2021-07-13 09:42:19 -0400 |
commit | a7bdd2dd8e7685166767c5fecfdce7e5dc8a40be (patch) | |
tree | b4b167b47aa3e4934734d75f62c9a7e5b94a91d5 /lib/efi_loader/efi_file.c | |
parent | 490101a5e5df65238b900b21b81361bc4b13da2e (diff) | |
parent | b0b1449b3be9b93ecc57d91b0cb18ed81fc8a1ee (diff) |
Merge tag 'efi-2021-10-rc1' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request for efi-2021-10-rc1
Documentation
* fix typo in signature.txt
UEFI
* provide file attributes in EFI_FILE_PROTOCOL.Read()
* various capsule update fixes
Diffstat (limited to 'lib/efi_loader/efi_file.c')
-rw-r--r-- | lib/efi_loader/efi_file.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/efi_loader/efi_file.c b/lib/efi_loader/efi_file.c index 6b3f5962be2..6299fcbbf4e 100644 --- a/lib/efi_loader/efi_file.c +++ b/lib/efi_loader/efi_file.c @@ -480,6 +480,17 @@ static efi_status_t file_read(struct file_handle *fh, u64 *buffer_size, return EFI_SUCCESS; } +static void rtc2efi(struct efi_time *time, struct rtc_time *tm) +{ + memset(time, 0, sizeof(struct efi_time)); + time->year = tm->tm_year; + time->month = tm->tm_mon; + time->day = tm->tm_mday; + time->hour = tm->tm_hour; + time->minute = tm->tm_min; + time->second = tm->tm_sec; +} + static efi_status_t dir_read(struct file_handle *fh, u64 *buffer_size, void *buffer) { @@ -535,6 +546,10 @@ static efi_status_t dir_read(struct file_handle *fh, u64 *buffer_size, info->size = required_size; info->file_size = dent->size; info->physical_size = dent->size; + info->attribute = dent->attr; + rtc2efi(&info->create_time, &dent->create_time); + rtc2efi(&info->modification_time, &dent->change_time); + rtc2efi(&info->last_access_time, &dent->access_time); if (dent->type == FS_DT_DIR) info->attribute |= EFI_FILE_DIRECTORY; |