aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Kondik <shade@chemlab.org>2013-07-07 00:33:03 -0700
committerMatt Mower <mowerm@gmail.com>2016-01-16 12:15:26 -0600
commit8f3956f6fc0b7601845d288293ac92880a828b25 (patch)
tree72d6241f2b1dee865ce734d6db5867849e33962d
parent9d909bac629d1f5127966091e3353f0950fad48d (diff)
downloadandroid_external_exfat-8f3956f6fc0b7601845d288293ac92880a828b25.tar.gz
android_external_exfat-8f3956f6fc0b7601845d288293ac92880a828b25.tar.bz2
android_external_exfat-8f3956f6fc0b7601845d288293ac92880a828b25.zip
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
-rw-r--r--libexfat/io.c6
1 files changed, 6 insertions, 0 deletions
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