[uClibc-cvs] CVS uClibc/libc/sysdeps/linux/common

CVS User andersen andersen at codepoet.org
Wed Dec 22 19:53:11 UTC 2004


Update of /var/cvs/uClibc/libc/sysdeps/linux/common
In directory nail:/tmp/cvs-serv21177/libc/sysdeps/linux/common

Modified Files:
	xattr.c Makefile 
Log Message:
Patch from psm, vapier, and solar, adding xattr syscalls


--- /var/cvs/uClibc/libc/sysdeps/linux/common/xattr.c	2004/12/20 00:10:51	1.1
+++ /var/cvs/uClibc/libc/sysdeps/linux/common/xattr.c	2004/12/22 19:53:11	1.2
@@ -1,6 +1,6 @@
 /* 
  * 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 $
+ * $Header: /var/cvs/uClibc/libc/sysdeps/linux/common/xattr.c,v 1.2 2004/12/22 19:53:11 andersen Exp $
  *
  * This file provides the following Extended Attribute system calls to uClibc.
  *
@@ -9,63 +9,153 @@
  *	listxattr(), llistxattr(), flistxattr(),
  *	removexattr(), lremovexattr(), fremovexattr()
  *
- * 20041215 - <solar at gentoo.org>
+ * Dec 2004 - <solar at gentoo.org>
+ */
+
+/* Taken from the manpage.
+ * On success, a positive number is returned indicating the size of the
+ * extended attribute name list. On failure, -1 is returned and errno
+ * is set appropriately. If extended attributes are not supported by the
+ * filesystem, or are disabled, errno is set to ENOSYS.
  */
 
 #include "syscalls.h"
 #include <unistd.h>
 
+/* sets */
 #ifdef __NR_setxattr
-_syscall5(int, setxattr, const char *, path, const char *, name, const void *,
-		  value, size_t, size, int, flags);
+_syscall5(int, setxattr, const char *, path, const char *, name,
+	const void *, value, size_t, size, int, flags);
+#else
+int setxattr(__const char *__path, __const char *__name,
+	__const void *__value, size_t __size, int __flags)
+{
+    __set_errno(ENOSYS);
+    return -1;
+}
 #endif
 
 #ifdef __NR_lsetxattr
-_syscall5(int, lsetxattr, const char *, path, const char *, name, const void *,
-		  value, size_t, size, int, flags);
+_syscall5(int, lsetxattr, const char *, path, const char *, name,
+	const void *, value, size_t, size, int, flags);
+#else
+int lsetxattr(__const char *__path, __const char *__name,
+	__const void *__value, size_t __size, int __flags)
+{
+    __set_errno(ENOSYS);
+    return -1;
+}
 #endif
 
 #ifdef __NR_fsetxattr
 _syscall5(int, fsetxattr, int, filedes, const char *, name, const void *,
-		  value, size_t, size, int, flags);
+	value, size_t, size, int, flags);
+#else
+int fsetxattr(int __fd, __const char *__name, __const void *__value,
+	size_t __size, int __flags)
+{
+    __set_errno(ENOSYS);
+    return -1;
+}
 #endif
 
+/* gets */
 #ifdef __NR_getxattr
 _syscall4(ssize_t, getxattr, const char *, path, const char *, name,
-		  void *, value, size_t, size);
+	void *, value, size_t, size);
+#else
+ssize_t getxattr(__const char *__path, __const char *__name, void *__value,
+	size_t __size)
+{
+    __set_errno(ENOSYS);
+    return -1;
+}
 #endif
 
 #ifdef __NR_lgetxattr
-_syscall4(ssize_t, lgetxattr, const char *, path, const char *, name, void *,
-		  value, size_t, size);
+_syscall4(ssize_t, lgetxattr, const char *, path, const char *, name,
+	void *, value, size_t, size);
+#else
+ssize_t lgetxattr(__const char *__path, __const char *__name,
+	void *__value, size_t __size)
+{
+    __set_errno(ENOSYS);
+    return -1;
+}
 #endif
 
 #ifdef __NR_fgetxattr
-_syscall4(ssize_t, fgetxattr, int, filedes, const char *, name, void *, value,
-		  size_t, size);
+_syscall4(ssize_t, fgetxattr, int, filedes, const char *, name, void *,
+	value, size_t, size);
+#else
+ssize_t fgetxattr(int __fd, __const char *__name, void *__value,
+	size_t __size)
+{
+    __set_errno(ENOSYS);
+    return -1;
+}
 #endif
 
+/* list */
 #ifdef __NR_listxattr
-_syscall3(ssize_t, listxattr, const char *, path, char *, list, size_t, size);
+_syscall3(ssize_t, listxattr, const char *, path, char *, list, size_t,
+	size);
+#else
+ssize_t listxattr(__const char *__path, char *__list, size_t __size)
+{
+    __set_errno(ENOSYS);
+    return -1;
+}
 #endif
 
 #ifdef __NR_llistxattr
 _syscall3(ssize_t, llistxattr, const char *, path, char *, list, size_t,
-		  size);
+	size);
+#else
+ssize_t llistxattr(__const char *__path, char *__list, size_t __size)
+{
+    __set_errno(ENOSYS);
+    return -1;
+}
 #endif
 
 #ifdef __NR_flistxattr
 _syscall3(size_t, flistxattr, int, filedes, char *, list, size_t, size);
+#else
+ssize_t flistxattr(int __fd, char *__list, size_t __size)
+{
+    __set_errno(ENOSYS);
+    return -1;
+}
 #endif
 
+/* remove */
 #ifdef __NR_removexattr
 _syscall2(int, removexattr, const char *, path, const char *, name);
+#else
+int removexattr(__const char *__path, __const char *__name)
+{
+    __set_errno(ENOSYS);
+    return -1;
+}
 #endif
 
 #ifdef __NR_lremovexattr
 _syscall2(int, lremovexattr, const char *, path, const char *, name);
+#else
+int lremovexattr(__const char *__path, __const char *__name)
+{
+    __set_errno(ENOSYS);
+    return -1;
+}
 #endif
 
 #ifdef __NR_fremovexattr
 _syscall2(int, fremovexattr, int, filedes, const char *, name);
+#else
+int fremovexattr(int __fd, __const char *__name)
+{
+    __set_errno(ENOSYS);
+    return -1;
+}
 #endif
--- /var/cvs/uClibc/libc/sysdeps/linux/common/Makefile	2004/12/20 00:10:51	1.102
+++ /var/cvs/uClibc/libc/sysdeps/linux/common/Makefile	2004/12/22 19:53:11	1.103
@@ -52,7 +52,7 @@
 	sysinfo.c time.c times.c truncate.c truncate64.c ulimit.c \
 	umask.c umount.c umount2.c uname.c unlink.c uselib.c ustat.c \
 	utime.c utimes.c vfork.c vhangup.c wait.c wait3.c wait4.c \
-	waitpid.c write.c writev.c xstatconv.c
+	waitpid.c write.c writev.c xattr.c xstatconv.c
 
 ifneq ($(strip $(EXCLUDE_BRK)),y)
 CSRC+=sbrk.c
@@ -61,10 +61,6 @@
 CSRC+=ssp.c
 endif
 
-ifeq ($(strip $(UCLIBC_XATTR)),y)
-CSRC+=xattr.c
-endif
-
 COBJS=$(patsubst %.c,%.o, $(CSRC))
 
 OBJ=$(COBJS) $(MOBJ)



More information about the uClibc-cvs mailing list