OSDN Git Service

Handle 64-bit offsets correctly on Android
[android-x86/external-exfat.git] / libexfat / io.c
index fea3562..9bd1233 100644 (file)
@@ -251,6 +251,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
@@ -285,6 +287,8 @@ void exfat_pread(struct exfat_dev* dev, void* buffer, size_t size,
 {
 #ifdef USE_UBLIO
        if (ublio_pread(dev->ufh, buffer, size, offset) != size)
+#elif defined(__ANDROID__)
+    if (pread64(dev->fd, buffer, size, offset) != size)
 #else
        if (pread(dev->fd, buffer, size, offset) != size)
 #endif
@@ -297,6 +301,8 @@ void exfat_pwrite(struct exfat_dev* dev, const void* buffer, size_t size,
 {
 #ifdef USE_UBLIO
        if (ublio_pwrite(dev->ufh, buffer, size, offset) != size)
+#elif defined(__ANDROID__)
+    if (pwrite64(dev->fd, buffer, size, offset) != size)
 #else
        if (pwrite(dev->fd, buffer, size, offset) != size)
 #endif