summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/common/xattr.c
diff options
context:
space:
mode:
authorNed Ludd <solar@gentoo.org>2004-12-20 00:10:51 +0000
committerNed Ludd <solar@gentoo.org>2004-12-20 00:10:51 +0000
commitd503d1d6c62506ba6fb51c04a9703039e71d11a9 (patch)
tree1d3976101fc6bfa6aa7cb28aed91d404b03c5ee5 /libc/sysdeps/linux/common/xattr.c
parent1c8d7ee9cbe7483d06dab11b1333ea2eb23e60c6 (diff)
- Added support for 13 new syscalls to allow more things to compile when using uClibc. mincore() and the ones for Extended Attributes setxattr(), lsetxattr(), fsetxattr(), getxattr(), lgetxattr(), fgetxattr(), listxattr(), llistxattr(), flistxattr(), removexattr(), lremovexattr(), fremovexattr() which are optional.
Diffstat (limited to 'libc/sysdeps/linux/common/xattr.c')
-rw-r--r--libc/sysdeps/linux/common/xattr.c71
1 files changed, 71 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/common/xattr.c b/libc/sysdeps/linux/common/xattr.c
new file mode 100644
index 000000000..c5aa69be3
--- /dev/null
+++ b/libc/sysdeps/linux/common/xattr.c
@@ -0,0 +1,71 @@
+/*
+ * Distributed under the terms of the GNU General Public License v2
+ * $Header: /var/cvs/uClibc/libc/sysdeps/linux/common/xattr.c,v 1.1 2004/12/20 00:10:51 solar Exp $
+ *
+ * This file provides the following Extended Attribute system calls to uClibc.
+ *
+ * setxattr(), lsetxattr(), fsetxattr(),
+ * getxattr(), lgetxattr(), fgetxattr(),
+ * listxattr(), llistxattr(), flistxattr(),
+ * removexattr(), lremovexattr(), fremovexattr()
+ *
+ * 20041215 - <solar@gentoo.org>
+ */
+
+#include "syscalls.h"
+#include <unistd.h>
+
+#ifdef __NR_setxattr
+_syscall5(int, setxattr, const char *, path, const char *, name, const void *,
+ value, size_t, size, int, flags);
+#endif
+
+#ifdef __NR_lsetxattr
+_syscall5(int, lsetxattr, const char *, path, const char *, name, const void *,
+ value, size_t, size, int, flags);
+#endif
+
+#ifdef __NR_fsetxattr
+_syscall5(int, fsetxattr, int, filedes, const char *, name, const void *,
+ value, size_t, size, int, flags);
+#endif
+
+#ifdef __NR_getxattr
+_syscall4(ssize_t, getxattr, const char *, path, const char *, name,
+ void *, value, size_t, size);
+#endif
+
+#ifdef __NR_lgetxattr
+_syscall4(ssize_t, lgetxattr, const char *, path, const char *, name, void *,
+ value, size_t, size);
+#endif
+
+#ifdef __NR_fgetxattr
+_syscall4(ssize_t, fgetxattr, int, filedes, const char *, name, void *, value,
+ size_t, size);
+#endif
+
+#ifdef __NR_listxattr
+_syscall3(ssize_t, listxattr, const char *, path, char *, list, size_t, size);
+#endif
+
+#ifdef __NR_llistxattr
+_syscall3(ssize_t, llistxattr, const char *, path, char *, list, size_t,
+ size);
+#endif
+
+#ifdef __NR_flistxattr
+_syscall3(size_t, flistxattr, int, filedes, char *, list, size_t, size);
+#endif
+
+#ifdef __NR_removexattr
+_syscall2(int, removexattr, const char *, path, const char *, name);
+#endif
+
+#ifdef __NR_lremovexattr
+_syscall2(int, lremovexattr, const char *, path, const char *, name);
+#endif
+
+#ifdef __NR_fremovexattr
+_syscall2(int, fremovexattr, int, filedes, const char *, name);
+#endif