Home | History | Annotate | Download | only in sys
      1 /* Copyright (C) 2002 Free Software Foundation, Inc.
      2    This file is part of the GNU C Library.
      3 
      4    The GNU C Library is free software; you can redistribute it and/or
      5    modify it under the terms of the GNU Lesser General Public
      6    License as published by the Free Software Foundation; either
      7    version 2.1 of the License, or (at your option) any later version.
      8 
      9    The GNU C Library is distributed in the hope that it will be useful,
     10    but WITHOUT ANY WARRANTY; without even the implied warranty of
     11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     12    Lesser General Public License for more details.
     13 
     14    You should have received a copy of the GNU Lesser General Public
     15    License along with the GNU C Library; if not, write to the Free
     16    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
     17    02111-1307 USA.  */
     18 
     19 #ifndef _SYS_XATTR_H
     20 #define _SYS_XATTR_H	1
     21 
     22 #include <features.h>
     23 #include <sys/types.h>
     24 
     25 
     26 __BEGIN_DECLS
     27 
     28 /* The following constants should be used for the fifth parameter of
     29    `*setxattr'.  */
     30 enum
     31 {
     32   XATTR_CREATE = 1,	/* set value, fail if attr already exists.  */
     33 #define XATTR_CREATE	XATTR_CREATE
     34   XATTR_REPLACE = 2	/* set value, fail if attr does not exist.  */
     35 #define XATTR_REPLACE	XATTR_REPLACE
     36 };
     37 
     38 /* Set the attribute NAME of the file pointed to by PATH to VALUE (which
     39    is SIZE bytes long).  Return 0 on success, -1 for errors.  */
     40 extern int setxattr (__const char *__path, __const char *__name,
     41 		     __const void *__value, size_t __size, int __flags)
     42 	__THROW;
     43 
     44 /* Set the attribute NAME of the file pointed to by PATH to VALUE (which is
     45    SIZE bytes long), not following symlinks for the last pathname component.
     46    Return 0 on success, -1 for errors.  */
     47 extern int lsetxattr (__const char *__path, __const char *__name,
     48 		      __const void *__value, size_t __size, int __flags)
     49 	__THROW;
     50 
     51 /* Set the attribute NAME of the file descriptor FD to VALUE (which is SIZE
     52    bytes long).  Return 0 on success, -1 for errors.  */
     53 extern int fsetxattr (int __fd, __const char *__name, __const void *__value,
     54 		      size_t __size, int __flags) __THROW;
     55 
     56 /* Get the attribute NAME of the file pointed to by PATH to VALUE (which is
     57    SIZE bytes long).  Return 0 on success, -1 for errors.  */
     58 extern ssize_t getxattr (__const char *__path, __const char *__name,
     59 			 void *__value, size_t __size) __THROW;
     60 
     61 /* Get the attribute NAME of the file pointed to by PATH to VALUE (which is
     62    SIZE bytes long), not following symlinks for the last pathname component.
     63    Return 0 on success, -1 for errors.  */
     64 extern ssize_t lgetxattr (__const char *__path, __const char *__name,
     65 			  void *__value, size_t __size) __THROW;
     66 
     67 /* Get the attribute NAME of the file descriptor FD to VALUE (which is SIZE
     68    bytes long).  Return 0 on success, -1 for errors.  */
     69 extern ssize_t fgetxattr (int __fd, __const char *__name, void *__value,
     70 			  size_t __size) __THROW;
     71 
     72 /* List attributes of the file pointed to by PATH into the user-supplied
     73    buffer LIST (which is SIZE bytes big).  Return 0 on success, -1 for
     74    errors.  */
     75 extern ssize_t listxattr (__const char *__path, char *__list, size_t __size)
     76 	__THROW;
     77 
     78 /* List attributes of the file pointed to by PATH into the user-supplied
     79    buffer LIST (which is SIZE bytes big), not following symlinks for the
     80    last pathname component.  Return 0 on success, -1 for errors.  */
     81 extern ssize_t llistxattr (__const char *__path, char *__list, size_t __size)
     82 	__THROW;
     83 
     84 /* List attributes of the file descriptor FD into the user-supplied buffer
     85    LIST (which is SIZE bytes big).  Return 0 on success, -1 for errors.  */
     86 extern ssize_t flistxattr (int __fd, char *__list, size_t __size)
     87 	__THROW;
     88 
     89 /* Remove the attribute NAME from the file pointed to by PATH.  Return 0
     90    on success, -1 for errors.  */
     91 extern int removexattr (__const char *__path, __const char *__name) __THROW;
     92 
     93 /* Remove the attribute NAME from the file pointed to by PATH, not
     94    following symlinks for the last pathname component.  Return 0 on
     95    success, -1 for errors.  */
     96 extern int lremovexattr (__const char *__path, __const char *__name) __THROW;
     97 
     98 /* Remove the attribute NAME from the file descriptor FD.  Return 0 on
     99    success, -1 for errors.  */
    100 extern int fremovexattr (int __fd, __const char *__name) __THROW;
    101 
    102 __END_DECLS
    103 
    104 #endif	/* sys/xattr.h  */
    105