OSDN Git Service

Handle 64-bit offsets correctly on Android
[android-x86/external-exfat.git] / libexfat / io.c
index 3d7aaad..8b1c2c5 100644 (file)
@@ -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