summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2002-03-31 01:03:15 +0000
committerEric Andersen <andersen@codepoet.org>2002-03-31 01:03:15 +0000
commit8ba7d3bab5a6510fa5ee12d033eb0a26966ea3d3 (patch)
treee41519f92e77b3dc31a0033935891bbdda4097bd
parentf5980ff9299c469eb5c6920e67e9bf2b70925bba (diff)
Add in support for ftruncate64 on both ARM and x86
-Erik
-rw-r--r--libc/sysdeps/linux/arm/Makefile2
-rw-r--r--libc/sysdeps/linux/arm/ftruncate64.c22
-rw-r--r--libc/sysdeps/linux/i386/Makefile2
-rw-r--r--libc/sysdeps/linux/i386/ftruncate64.c22
4 files changed, 46 insertions, 2 deletions
diff --git a/libc/sysdeps/linux/arm/Makefile b/libc/sysdeps/linux/arm/Makefile
index c5a96dea8..b29e2c641 100644
--- a/libc/sysdeps/linux/arm/Makefile
+++ b/libc/sysdeps/linux/arm/Makefile
@@ -33,7 +33,7 @@ CRT0_OBJ=crt0.o
SSRC=__longjmp.S vfork.S clone.S setjmp.S bsd-setjmp.S bsd-_setjmp.S
SOBJS=$(patsubst %.S,%.o, $(SSRC))
-CSRC=inout_bwl.c brk.c
+CSRC=inout_bwl.c brk.c ftruncate64.c
COBJS=$(patsubst %.c,%.o, $(CSRC))
OBJS=$(SOBJS) $(MOBJ) $(COBJS)
diff --git a/libc/sysdeps/linux/arm/ftruncate64.c b/libc/sysdeps/linux/arm/ftruncate64.c
new file mode 100644
index 000000000..8827e0d01
--- /dev/null
+++ b/libc/sysdeps/linux/arm/ftruncate64.c
@@ -0,0 +1,22 @@
+/*
+ * ftruncate64 syscall for linux/arm
+ *
+ * Copyright (C) 2002 Erik Andersen <andersen@codepoet.org>
+ *
+ * This file is subject to the terms and conditions of the GNU Lesser
+ * General Public License. See the file COPYING.LIB in the main
+ * directory of this archive for more details.
+ */
+
+#include <features.h>
+#include <unistd.h>
+#include <errno.h>
+#include <sys/syscall.h>
+
+#if defined __UCLIBC_HAVE_LFS__ && defined __NR_ftruncate64
+
+/* Unlike some architectures, arm can pass an off64_t directly
+ * into a syscall so we don't need to do anything special */
+extern _syscall2 (int, _ftruncate64, int, fd, __off64_t, length);
+
+#endif /* __UCLIBC_HAVE_LFS__ */
diff --git a/libc/sysdeps/linux/i386/Makefile b/libc/sysdeps/linux/i386/Makefile
index c15751ee1..51a013620 100644
--- a/libc/sysdeps/linux/i386/Makefile
+++ b/libc/sysdeps/linux/i386/Makefile
@@ -42,7 +42,7 @@ ifeq ($(UNIFIED_SYSCALL),true)
endif
SOBJS=$(patsubst %.S,%.o, $(SSRC))
-CSRC=brk.c
+CSRC=brk.c ftruncate64.c
COBJS=$(patsubst %.c,%.o, $(CSRC))
OBJS=$(SOBJS) $(COBJS)
diff --git a/libc/sysdeps/linux/i386/ftruncate64.c b/libc/sysdeps/linux/i386/ftruncate64.c
new file mode 100644
index 000000000..e6d66e9ee
--- /dev/null
+++ b/libc/sysdeps/linux/i386/ftruncate64.c
@@ -0,0 +1,22 @@
+/*
+ * ftruncate64 syscall for linux/i386
+ *
+ * Copyright (C) 2002 Erik Andersen <andersen@codepoet.org>
+ *
+ * This file is subject to the terms and conditions of the GNU Lesser
+ * General Public License. See the file COPYING.LIB in the main
+ * directory of this archive for more details.
+ */
+
+#include <features.h>
+#include <unistd.h>
+#include <errno.h>
+#include <sys/syscall.h>
+
+#if defined __UCLIBC_HAVE_LFS__ && defined __NR_ftruncate64
+
+/* Unlike some architectures, i386 can pass an off64_t directly
+ * into a syscall so we don't need to do anything special */
+extern _syscall2 (int, ftruncate64, int, fd, __off64_t, length);
+
+#endif /* __UCLIBC_HAVE_LFS__ */