Browse Source

Add in support for ftruncate64 on both ARM and x86
-Erik

Eric Andersen 23 years ago
parent
commit
8ba7d3bab5

+ 1 - 1
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)

+ 22 - 0
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__ */

+ 1 - 1
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)

+ 22 - 0
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__ */