mtime support for ntfs
This commit is contained in:
parent
7b32d83d78
commit
0e5507c411
2 changed files with 9 additions and 0 deletions
|
@ -610,6 +610,10 @@ list_file (struct grub_ntfs_file *diro, char *pos,
|
||||||
|
|
||||||
fdiro->data = diro->data;
|
fdiro->data = diro->data;
|
||||||
fdiro->ino = u32at (pos, 0);
|
fdiro->ino = u32at (pos, 0);
|
||||||
|
if (u64at (pos, 0x20) > u64at (pos, 0x28))
|
||||||
|
fdiro->mtime = u64at (pos, 0x20);
|
||||||
|
else
|
||||||
|
fdiro->mtime = u64at (pos, 0x28);
|
||||||
|
|
||||||
ustr = grub_malloc (ns * 4 + 1);
|
ustr = grub_malloc (ns * 4 + 1);
|
||||||
if (ustr == NULL)
|
if (ustr == NULL)
|
||||||
|
@ -880,6 +884,10 @@ grub_ntfs_dir (grub_device_t device, const char *path,
|
||||||
struct grub_dirhook_info info;
|
struct grub_dirhook_info info;
|
||||||
grub_memset (&info, 0, sizeof (info));
|
grub_memset (&info, 0, sizeof (info));
|
||||||
info.dir = ((filetype & GRUB_FSHELP_TYPE_MASK) == GRUB_FSHELP_DIR);
|
info.dir = ((filetype & GRUB_FSHELP_TYPE_MASK) == GRUB_FSHELP_DIR);
|
||||||
|
info.mtimeset = 1;
|
||||||
|
info.mtime = grub_divmod64 (node->mtime, 10000000, 0)
|
||||||
|
- 86400ULL * 365 * (1970 - 1601)
|
||||||
|
- 86400ULL * ((1970 - 1601) / 4) + 86400ULL * ((1970 - 1601) / 100);
|
||||||
grub_free (node);
|
grub_free (node);
|
||||||
return hook (filename, &info);
|
return hook (filename, &info);
|
||||||
}
|
}
|
||||||
|
|
|
@ -135,6 +135,7 @@ struct grub_fshelp_node
|
||||||
struct grub_ntfs_data *data;
|
struct grub_ntfs_data *data;
|
||||||
char *buf;
|
char *buf;
|
||||||
grub_uint64_t size;
|
grub_uint64_t size;
|
||||||
|
grub_uint64_t mtime;
|
||||||
grub_uint32_t ino;
|
grub_uint32_t ino;
|
||||||
int inode_read;
|
int inode_read;
|
||||||
struct grub_ntfs_attr attr;
|
struct grub_ntfs_attr attr;
|
||||||
|
|
Loading…
Reference in a new issue