summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/common
diff options
context:
space:
mode:
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2008-05-02 07:18:29 +0000
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2008-05-02 07:18:29 +0000
commit2167a906ffd7499685e25af093107db4770a7069 (patch)
treefcc6ce5131e7d728602fc95201d5fde1f25fce6d /libc/sysdeps/linux/common
parent86d7cc836dafc8bf3b6f8be7db2917e8c1f5d54b (diff)
- add vmsplice, splice, tee (Timo Teräs)
- pull bits/fcntl.h from glibc (Timo Teräs)
Diffstat (limited to 'libc/sysdeps/linux/common')
-rw-r--r--libc/sysdeps/linux/common/splice.c28
-rw-r--r--libc/sysdeps/linux/common/tee.c28
-rw-r--r--libc/sysdeps/linux/common/vmsplice.c28
3 files changed, 84 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/common/splice.c b/libc/sysdeps/linux/common/splice.c
new file mode 100644
index 000000000..7e8f4e3e0
--- /dev/null
+++ b/libc/sysdeps/linux/common/splice.c
@@ -0,0 +1,28 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * splice() for uClibc
+ *
+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
+ *
+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
+ */
+
+#include <sys/syscall.h>
+#include <fcntl.h>
+
+libc_hidden_proto(splice)
+
+#ifdef __NR_splice
+_syscall6(ssize_t, splice, int, __fdin, __off64_t *, __offin, int, __fdout,
+ __off64_t *, __offout, size_t, __len, unsigned int, __flags);
+#else
+ssize_t splice(int __fdin, __off64_t *__offin, int __fdout,
+ __off64_t *__offout, size_t __len, unsigned int __flags)
+{
+ __set_errno(ENOSYS);
+ return -1;
+}
+#endif
+
+libc_hidden_def(splice)
+
diff --git a/libc/sysdeps/linux/common/tee.c b/libc/sysdeps/linux/common/tee.c
new file mode 100644
index 000000000..647440815
--- /dev/null
+++ b/libc/sysdeps/linux/common/tee.c
@@ -0,0 +1,28 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * tee() for uClibc
+ *
+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
+ *
+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
+ */
+
+#include <sys/syscall.h>
+#include <fcntl.h>
+
+libc_hidden_proto(tee)
+
+#ifdef __NR_tee
+_syscall4(ssize_t, tee, int, __fdin, int, __fdout, size_t, __len,
+ unsigned int, __flags);
+#else
+ssize_t tee(int __fdin, int __fdout, size_t __len, unsigned int __flags)
+{
+ __set_errno(ENOSYS);
+ return -1;
+}
+#endif
+
+libc_hidden_def(tee)
+
+
diff --git a/libc/sysdeps/linux/common/vmsplice.c b/libc/sysdeps/linux/common/vmsplice.c
new file mode 100644
index 000000000..a0156d772
--- /dev/null
+++ b/libc/sysdeps/linux/common/vmsplice.c
@@ -0,0 +1,28 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * vmsplice() for uClibc
+ *
+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
+ *
+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
+ */
+
+#include <sys/syscall.h>
+#include <fcntl.h>
+
+libc_hidden_proto(vmsplice)
+
+#ifdef __NR_vmsplice
+_syscall4(ssize_t, vmsplice, int, __fdout, const struct iovec *, __iov,
+ size_t, __count, unsigned int, __flags);
+#else
+ssize_t vmsplice(int __fdout, const struct iovec *__iov, size_t __count,
+ unsigned int __flags)
+{
+ __set_errno(ENOSYS);
+ return -1;
+}
+#endif
+
+libc_hidden_def(vmsplice)
+