summaryrefslogtreecommitdiffstats
path: root/libc/bionic/legacy_32_bit_support.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libc/bionic/legacy_32_bit_support.cpp')
-rw-r--r--libc/bionic/legacy_32_bit_support.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/libc/bionic/legacy_32_bit_support.cpp b/libc/bionic/legacy_32_bit_support.cpp
index d7ccdb9..411daa0 100644
--- a/libc/bionic/legacy_32_bit_support.cpp
+++ b/libc/bionic/legacy_32_bit_support.cpp
@@ -27,6 +27,7 @@
*/
#include <errno.h>
+#include <fcntl.h>
#include <stdarg.h>
#include <sys/resource.h>
#include <sys/types.h>
@@ -86,6 +87,11 @@ ssize_t pwrite(int fd, const void* buf, size_t byte_count, off_t offset) {
return pwrite64(fd, buf, byte_count, static_cast<off64_t>(offset));
}
+// There is no fallocate for 32-bit off_t, so we need to widen and call fallocate64.
+int fallocate(int fd, int mode, off_t offset, off_t length) {
+ return fallocate64(fd, mode, static_cast<off64_t>(offset), static_cast<off64_t>(length));
+}
+
// There is no getrlimit64 system call, so we need to use prlimit64.
int getrlimit64(int resource, rlimit64* limits64) {
return prlimit64(0, resource, NULL, limits64);