diff options
Diffstat (limited to 'libc/include/sys/xattr.h')
-rw-r--r-- | libc/include/sys/xattr.h | 137 |
1 files changed, 118 insertions, 19 deletions
diff --git a/libc/include/sys/xattr.h b/libc/include/sys/xattr.h index d15b3fce9..dc58026eb 100644 --- a/libc/include/sys/xattr.h +++ b/libc/include/sys/xattr.h @@ -26,8 +26,12 @@ * SUCH DAMAGE. */ -#ifndef _SYS_XATTR_H_ -#define _SYS_XATTR_H_ +#pragma once + +/** + * @file sys/xattr.h + * @brief Extended attribute functions. + */ #include <linux/xattr.h> #include <sys/cdefs.h> @@ -35,25 +39,120 @@ __BEGIN_DECLS -int fsetxattr(int __fd, const char* __name, const void* __value, size_t __size, int __flags) - __INTRODUCED_IN(16); -int setxattr(const char* __path, const char* __name, const void* __value, size_t __size, int __flags) - __INTRODUCED_IN(16); -int lsetxattr(const char* __path, const char* __name, const void* __value, size_t __size, int __flags) - __INTRODUCED_IN(16); +/** + * [fsetxattr(2)](http://man7.org/linux/man-pages/man2/fsetxattr.2.html) + * sets an extended attribute on the file referred to by the given file + * descriptor. + * + * Valid flags are `XATTR_CREATE` and `XATTR_REPLACE`. + * + * Returns 0 on success and returns -1 and sets `errno` on failure. + */ +int fsetxattr(int __fd, const char* __name, const void* __value, size_t __size, int __flags); -ssize_t fgetxattr(int __fd, const char* __name, void* __value, size_t __size) __INTRODUCED_IN(16); -ssize_t getxattr(const char* __path, const char* __name, void* __value, size_t __size) __INTRODUCED_IN(16); -ssize_t lgetxattr(const char* __path, const char* __name, void* __value, size_t __size) __INTRODUCED_IN(16); +/** + * [setxattr(2)](http://man7.org/linux/man-pages/man2/setxattr.2.html) + * sets an extended attribute on the file referred to by the given path. + * + * Valid flags are `XATTR_CREATE` and `XATTR_REPLACE`. + * + * Returns 0 on success and returns -1 and sets `errno` on failure. + */ +int setxattr(const char* __path, const char* __name, const void* __value, size_t __size, int __flags); -ssize_t listxattr(const char* __path, char* __list, size_t __size) __INTRODUCED_IN(16); -ssize_t llistxattr(const char* __path, char* __list, size_t __size) __INTRODUCED_IN(16); -ssize_t flistxattr(int __fd, char* __list, size_t __size) __INTRODUCED_IN(16); +/** + * [lsetxattr(2)](http://man7.org/linux/man-pages/man2/lsetxattr.2.html) + * sets an extended attribute on the file referred to by the given path, which + * is the link itself rather than its target in the case of a symbolic link. + * + * Valid flags are `XATTR_CREATE` and `XATTR_REPLACE`. + * + * Returns 0 on success and returns -1 and sets `errno` on failure. + */ +int lsetxattr(const char* __path, const char* __name, const void* __value, size_t __size, int __flags); -int removexattr(const char* __path, const char* __name) __INTRODUCED_IN(16); -int lremovexattr(const char* __path, const char* __name) __INTRODUCED_IN(16); -int fremovexattr(int __fd, const char* __name) __INTRODUCED_IN(16); +/** + * [fgetxattr(2)](http://man7.org/linux/man-pages/man2/fgetxattr.2.html) + * gets an extended attribute on the file referred to by the given file + * descriptor. + * + * Returns the non-negative length of the value on success, or + * returns -1 and sets `errno` on failure. + */ +ssize_t fgetxattr(int __fd, const char* __name, void* __value, size_t __size); -__END_DECLS +/** + * [getxattr(2)](http://man7.org/linux/man-pages/man2/getxattr.2.html) + * gets an extended attribute on the file referred to by the given path. + * + * Returns the non-negative length of the value on success, or + * returns -1 and sets `errno` on failure. + */ +ssize_t getxattr(const char* __path, const char* __name, void* __value, size_t __size); + +/** + * [lgetxattr(2)](http://man7.org/linux/man-pages/man2/lgetxattr.2.html) + * gets an extended attribute on the file referred to by the given path, which + * is the link itself rather than its target in the case of a symbolic link. + * + * Returns the non-negative length of the value on success, or + * returns -1 and sets `errno` on failure. + */ +ssize_t lgetxattr(const char* __path, const char* __name, void* __value, size_t __size); -#endif +/** + * [flistxattr(2)](http://man7.org/linux/man-pages/man2/flistxattr.2.html) + * lists the extended attributes on the file referred to by the given file + * descriptor. + * + * Returns the non-negative length of the list on success, or + * returns -1 and sets `errno` on failure. + */ +ssize_t flistxattr(int __fd, char* __list, size_t __size); + +/** + * [listxattr(2)](http://man7.org/linux/man-pages/man2/listxattr.2.html) + * lists the extended attributes on the file referred to by the given path. + * + * Returns the non-negative length of the list on success, or + * returns -1 and sets `errno` on failure. + */ +ssize_t listxattr(const char* __path, char* __list, size_t __size); + +/** + * [llistxattr(2)](http://man7.org/linux/man-pages/man2/llistxattr.2.html) + * lists the extended attributes on the file referred to by the given path, which + * is the link itself rather than its target in the case of a symbolic link. + * + * Returns the non-negative length of the list on success, or + * returns -1 and sets `errno` on failure. + */ +ssize_t llistxattr(const char* __path, char* __list, size_t __size); + +/** + * [fremovexattr(2)](http://man7.org/linux/man-pages/man2/fremovexattr.2.html) + * removes an extended attribute on the file referred to by the given file + * descriptor. + * + * Returns 0 on success and returns -1 and sets `errno` on failure. + */ +int fremovexattr(int __fd, const char* __name); + +/** + * [lremovexattr(2)](http://man7.org/linux/man-pages/man2/lremovexattr.2.html) + * removes an extended attribute on the file referred to by the given path, which + * is the link itself rather than its target in the case of a symbolic link. + * + * Returns 0 on success and returns -1 and sets `errno` on failure. + */ +int lremovexattr(const char* __path, const char* __name); + +/** + * [removexattr(2)](http://man7.org/linux/man-pages/man2/removexattr.2.html) + * removes an extended attribute on the file referred to by the given path. + * + * Returns 0 on success and returns -1 and sets `errno` on failure. + */ +int removexattr(const char* __path, const char* __name); + +__END_DECLS |