From 8f3956f6fc0b7601845d288293ac92880a828b25 Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Sun, 7 Jul 2013 00:33:03 -0700 Subject: [PATCH] Handle 64-bit offsets correctly on Android Note: Retains only relevant portion from original commit: github.com/CyanogenMod/android_external_exfat/commit/454ec8915dff0002be280915f722107bdc4f7cd0 Change-Id: Ie2db54b16c5638e2b083b538e14e610b0dbba296 --- libexfat/io.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libexfat/io.c b/libexfat/io.c index 3d7aaad..8b1c2c5 100644 --- a/libexfat/io.c +++ b/libexfat/io.c @@ -297,6 +297,8 @@ off_t exfat_seek(struct exfat_dev* dev, off_t offset, int whence) #ifdef USE_UBLIO /* XXX SEEK_CUR will be handled incorrectly */ return dev->pos = lseek(dev->fd, offset, whence); +#elif defined(__ANDROID__) + return lseek64(dev->fd, offset, whence); #else return lseek(dev->fd, offset, whence); #endif @@ -331,6 +333,8 @@ ssize_t exfat_pread(struct exfat_dev* dev, void* buffer, size_t size, { #ifdef USE_UBLIO return ublio_pread(dev->ufh, buffer, size, offset); +#elif defined(__ANDROID__) + return pread64(dev->fd, buffer, size, offset); #else return pread(dev->fd, buffer, size, offset); #endif @@ -341,6 +345,8 @@ ssize_t exfat_pwrite(struct exfat_dev* dev, const void* buffer, size_t size, { #ifdef USE_UBLIO return ublio_pwrite(dev->ufh, buffer, size, offset); +#elif defined(__ANDROID__) + return pwrite64(dev->fd, buffer, size, offset); #else return pwrite(dev->fd, buffer, size, offset); #endif -- 2.11.0