| // Copyright 2011 Google Inc. All Rights Reserved. |
| // Author: qianzhang@google.com (Qian Zhang) |
| |
| #define _GNU_SOURCE |
| |
| #include <linux/falloc.h> |
| #include <stdio.h> |
| #include <sys/types.h> |
| #include <sys/stat.h> |
| #include <unistd.h> |
| #include <sys/syscall.h> |
| #include <inttypes.h> |
| #include <errno.h> |
| #include <fcntl.h> |
| #include <stdlib.h> |
| |
| //mipsel-linux-gcc glibc hasn't imported fallocate api to support ext4 fallocate, |
| //we implment the API for the project for now. |
| |
| int fallocate64( int fd, int mode, __off64_t offset, __off64_t len ) |
| { |
| int result; |
| #ifdef __LP64__ |
| result = syscall( SYS_fallocate, fd, mode, offset, len ); |
| #else |
| result = syscall( SYS_fallocate, fd, mode, |
| __LONG_LONG_PAIR((uint32_t)(offset >> 32), (uint32_t)offset), |
| __LONG_LONG_PAIR((uint32_t)(len >> 32), (uint32_t)len)); |
| #endif |
| return result; |
| } |