2009-12-10 Vladimir Serbinenko <phcoder@gmail.com>

Eliminate NTFS 4Gib barrier.

	* fs/ntfs.c (read_attr): Use grub_disk_addr_t and grub_size_t.
	(read_run_data): Likewise.
	(grub_ntfs_read_run_list): Likewise.
	(grub_ntfs_read_block): Likewise.
	(grub_ntfs_iterate_dir): Likewise.
	(read_mft): Likewise.
	(read_data): Likewise.
	Use COM_LOG_LEN.
	* fs/ntfscomp.c (read_block): Cast ctx->target_vcn & 0xF to unsigned
	to avoid 64-bit division
	* include/grub/ntfs.h (COM_LOG_LEN): New definition.
	(grub_ntfs_rlst): Use grub_disk_addr_t.
This commit is contained in:
Vladimir 'phcoder' Serbinenko 2009-12-10 14:45:00 +01:00
parent 71ee178adb
commit 2e59983c82
4 changed files with 47 additions and 26 deletions

View file

@ -73,6 +73,7 @@
#define MAX_IDX (16384 >> BLK_SHR)
#define COM_LEN 4096
#define COM_LOG_LEN 12
#define COM_SEC (COM_LEN >> BLK_SHR)
#define AF_ALST 1
@ -164,7 +165,7 @@ struct grub_ntfs_comp
struct grub_ntfs_rlst
{
int flags;
grub_uint32_t target_vcn, curr_vcn, next_vcn, curr_lcn;
grub_disk_addr_t target_vcn, curr_vcn, next_vcn, curr_lcn;
char *cur_run;
struct grub_ntfs_attr *attr;
struct grub_ntfs_comp comp;