diff options
author | Suriyan Ramasami <suriyan.r@gmail.com> | 2014-11-17 14:39:35 -0800 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2014-11-23 06:49:04 -0500 |
commit | 1ad0b98a067a133c0e8a182649a76a4afd739594 (patch) | |
tree | 26f5ce4468fb8886efee020e31257f62c5feaca4 /common | |
parent | 64553717bb3552f736090298ea952cb5ef07ef75 (diff) | |
download | u-boot-1ad0b98a067a133c0e8a182649a76a4afd739594.zip u-boot-1ad0b98a067a133c0e8a182649a76a4afd739594.tar.gz u-boot-1ad0b98a067a133c0e8a182649a76a4afd739594.tar.bz2 |
fat: Prepare API change for files greater than 2GB
Change the internal FAT functions to use loff_t for offsets.
Signed-off-by: Suriyan Ramasami <suriyan.r@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
[trini: Fix fs/fat/fat.c for min3 updates]
Signed-off-by: Tom Rini <trini@ti.com>
Diffstat (limited to 'common')
-rw-r--r-- | common/cmd_fat.c | 9 | ||||
-rw-r--r-- | common/env_fat.c | 4 |
2 files changed, 8 insertions, 5 deletions
diff --git a/common/cmd_fat.c b/common/cmd_fat.c index 633fbf1..c00fb28 100644 --- a/common/cmd_fat.c +++ b/common/cmd_fat.c @@ -100,7 +100,8 @@ U_BOOT_CMD( static int do_fat_fswrite(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { - long size; + loff_t size; + int ret; unsigned long addr; unsigned long count; block_dev_desc_t *dev_desc = NULL; @@ -127,15 +128,15 @@ static int do_fat_fswrite(cmd_tbl_t *cmdtp, int flag, count = simple_strtoul(argv[5], NULL, 16); buf = map_sysmem(addr, count); - size = file_fat_write(argv[4], buf, count); + ret = file_fat_write(argv[4], buf, 0, count, &size); unmap_sysmem(buf); - if (size == -1) { + if (ret < 0) { printf("\n** Unable to write \"%s\" from %s %d:%d **\n", argv[4], argv[1], dev, part); return 1; } - printf("%ld bytes written\n", size); + printf("%llu bytes written\n", size); return 0; } diff --git a/common/env_fat.c b/common/env_fat.c index 8db0160..e4c8489 100644 --- a/common/env_fat.c +++ b/common/env_fat.c @@ -41,6 +41,7 @@ int saveenv(void) disk_partition_t info; int dev, part; int err; + loff_t size; err = env_export(&env_new); if (err) @@ -59,7 +60,8 @@ int saveenv(void) return 1; } - err = file_fat_write(FAT_ENV_FILE, (void *)&env_new, sizeof(env_t)); + err = file_fat_write(FAT_ENV_FILE, (void *)&env_new, 0, sizeof(env_t), + &size); if (err == -1) { printf("\n** Unable to write \"%s\" from %s%d:%d **\n", FAT_ENV_FILE, FAT_ENV_INTERFACE, dev, part); |