about summary refs log tree commit diff
path: root/misc
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2002-08-23 09:29:27 +0000
committerAndreas Jaeger <aj@suse.de>2002-08-23 09:29:27 +0000
commitc0ad824e402c7afde1b46be1620c70107aa3eda9 (patch)
tree193845a8400499e3d01009631761793183a04bfe /misc
parenta7f5255ad25b5b7b637e3f2c1a648da2df0f1efc (diff)
downloadglibc-c0ad824e402c7afde1b46be1620c70107aa3eda9.tar.gz
glibc-c0ad824e402c7afde1b46be1620c70107aa3eda9.tar.xz
glibc-c0ad824e402c7afde1b46be1620c70107aa3eda9.zip
Update.
2002-08-23  Andreas Jaeger  <aj@suse.de>

	* locale/loadarchive.c: Include <stdlib.h> for prototypes of
	alloca, free, qsort.

	* dlfcn/bug-dlsym1-lib1.c (foo): Add prototype to avoid warning.

	* sysdeps/ieee754/flt-32/e_jnf.c: Remove unused variable.
	* sysdeps/ieee754/ldbl-96/e_j0l.c: Likewise.

	* sysdeps/generic/fgetxattr.c: New file.
	* sysdeps/generic/flistxattr.c: New file.
	* sysdeps/generic/fremovexattr.c: New file.
	* sysdeps/generic/fsetxattr.c: New file.
	* sysdeps/generic/getxattr.c: New file.
	* sysdeps/generic/listxattr.c: New file.
	* sysdeps/generic/lgetxattr.c: New file.
	* sysdeps/generic/llistxattr.c: New file.
	* sysdeps/generic/lremovexattr.c: New file.
	* sysdeps/generic/lsetxattr.c: New file.
	* sysdeps/generic/removexattr.c: New file.
	* sysdeps/generic/setxattr.c: New file.

	* misc/sys/xattr.h: New file, contributed by Christoph Hellwig
	<hch@lst.de>.

	* misc/Makefile (headers): Add sys/xattr.h.
	(routines): Add *xattr calls.

	* misc/Versions: Add *xattr calls with version 2.3.

	* sysdeps/unix/sysv/linux/m68k/Versions: Remove *xattr syscalls.
	* sysdeps/unix/sysv/linux/s390/s390-32/Versions: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Versions: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/Versions: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/Versions: Likewise.
	* sysdeps/unix/sysv/linux/ia64/Versions: Likewise.
	* sysdeps/unix/sysv/linux/alpha/Versions: Likewise.
	* sysdeps/unix/sysv/linux/arm/Versions: Likewise.

	* sysdeps/powerpc/elf/libc-start.c
	* sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
Diffstat (limited to 'misc')
-rw-r--r--misc/Makefile7
-rw-r--r--misc/Versions17
-rw-r--r--misc/sys/xattr.h106
3 files changed, 128 insertions, 2 deletions
diff --git a/misc/Makefile b/misc/Makefile
index a5cee879bc..a647c06d2f 100644
--- a/misc/Makefile
+++ b/misc/Makefile
@@ -29,7 +29,7 @@ headers	:= sys/uio.h bits/uio.h sys/ioctl.h bits/ioctls.h bits/ioctl-types.h \
 	   sys/mman.h sys/param.h fstab.h mntent.h search.h err.h error.h \
 	   sys/queue.h sysexits.h syscall.h sys/syscall.h sys/swap.h \
 	   sys/select.h ustat.h sys/ustat.h bits/ustat.h sys/sysinfo.h \
-	   regexp.h bits/select.h bits/mman.h
+	   regexp.h bits/select.h bits/mman.h sys/xattr.h
 
 routines := brk sbrk sstk ioctl \
 	    readv writev \
@@ -58,7 +58,10 @@ routines := brk sbrk sstk ioctl \
 	    hsearch hsearch_r tsearch lsearch \
 	    err error ustat \
 	    getsysstats dirname regexp \
-	    getloadavg getclktck
+	    getloadavg getclktck \
+	    fgetxattr flistxattr fremovexattr fsetxattr getxattr \
+	    listxattr lgetxattr llistxattr lremovexattr lsetxattr \
+	    removexattr setxattr
 
 distribute := device-nrs.h
 
diff --git a/misc/Versions b/misc/Versions
index 4a37d601ba..477b1b076c 100644
--- a/misc/Versions
+++ b/misc/Versions
@@ -108,6 +108,23 @@ libc {
     # p*
     posix_madvise;
   }
+  GLIBC_2.3 {
+    # f*
+    fgetxattr; flistxattr; fremovexattr; fsetxattr;
+
+    # g*
+    getxattr;
+
+    # l*
+    listxattr;
+    lgetxattr; llistxattr; lremovexattr; lsetxattr;
+
+    # r*
+    removexattr;
+
+    # s*
+    setxattr;
+  }
   GLIBC_PRIVATE {
     # functions which have an additional interface since they are
     # cancelable.
diff --git a/misc/sys/xattr.h b/misc/sys/xattr.h
new file mode 100644
index 0000000000..0e98185940
--- /dev/null
+++ b/misc/sys/xattr.h
@@ -0,0 +1,106 @@
+/* Copyright (C) 2002 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#ifndef _SYS_XATTR_H
+#define _SYS_XATTR_H	1
+
+#include <features.h>
+
+
+#define __need_size_t
+#include <stddef.h>
+
+__BEGIN_DECLS
+
+/* The following constants should be used for the fifth parameter of
+   `*setxattr'.  */
+enum
+{
+  XATTR_CREATE = 1,	/* set value, fail if attr already exists.  */
+#define XATTR_CREATE	XATTR_CREATE
+  XATTR_REPLACE = 2	/* set value, fail if attr does not exist.  */
+#define XATTR_REPLACE	XATTR_REPLACE
+};
+
+/* Set the attribute NAME of the file pointed to by PATH to VALUE (which
+   is SIZE bytes long).  Return 0 on success, -1 for errors.  */
+extern int setxattr (const char *__path, const char *__name,
+		     const void *__value, size_t __size, int __flags)
+	__THROW;
+
+/* Set the attribute NAME of the file pointed to by PATH to VALUE (which is
+   SIZE bytes long), not following symlinks for the last pathname component.
+   Return 0 on success, -1 for errors.  */
+extern int lsetxattr (const char *__path, const char *__name,
+		      const void *__value, size_t __size, int __flags)
+	__THROW;
+
+/* Set the attribute NAME of the file descriptor FD to VALUE (which is SIZE
+   bytes long).  Return 0 on success, -1 for errors.  */
+extern int fsetxattr (int __fd, const char *__name, const void *__value,
+		      size_t __size, int __flags) __THROW;
+
+/* Get the attribute NAME of the file pointed to by PATH to VALUE (which is
+   SIZE bytes long).  Return 0 on success, -1 for errors.  */
+extern ssize_t getxattr (const char *__path, const char *__name,
+			 void *__value, size_t __size) __THROW;
+
+/* Get the attribute NAME of the file pointed to by PATH to VALUE (which is
+   SIZE bytes long), not following symlinks for the last pathname component.
+   Return 0 on success, -1 for errors.  */
+extern ssize_t lgetxattr (const char *__path, const char *__name,
+			  void *__value, size_t __size) __THROW;
+
+/* Get the attribute NAME of the file descriptor FD to VALUE (which is SIZE
+   bytes long).  Return 0 on success, -1 for errors.  */
+extern ssize_t fgetxattr (int __fd, const char *__name, void *__value,
+			  size_t __size) __THROW;
+
+/* List attributes of the file pointed to by PATH into the user-supplied
+   buffer LIST (which is SIZE bytes big).  Return 0 on success, -1 for
+   errors.  */
+extern ssize_t listxattr (const char *__path, char *__list, size_t __size)
+	__THROW;
+
+/* List attributes of the file pointed to by PATH into the user-supplied
+   buffer LIST (which is SIZE bytes big), not following symlinks for the
+   last pathname component.  Return 0 on success, -1 for errors.  */
+extern ssize_t llistxattr (const char *__path, char *__list, size_t __size)
+	__THROW;
+
+/* List attributes of the file descriptor FD into the user-supplied buffer
+   LIST (which is SIZE bytes big).  Return 0 on success, -1 for errors.  */
+extern ssize_t flistxattr (int __fd, char *__list, size_t __size)
+	__THROW;
+
+/* Remove the attribute NAME from the file pointed to by PATH.  Return 0
+   on success, -1 for errors.  */
+extern int removexattr (const char *__path, const char *__name) __THROW;
+
+/* Remove the attribute NAME from the file pointed to by PATH, not
+   following symlinks for the last pathname component.  Return 0 on
+   success, -1 for errors.  */
+extern int lremovexattr (const char *__path, const char *__name) __THROW;
+
+/* Remove the attribute NAME from the file descriptor FD.  Return 0 on
+   success, -1 for errors.  */
+extern int fremovexattr (int __fd, const char *__name) __THROW;
+
+__END_DECLS
+
+#endif	/* sys/xattr.h  */