aboutsummaryrefslogtreecommitdiff
path: root/libc/include/sys/xattr.h
diff options
context:
space:
mode:
Diffstat (limited to 'libc/include/sys/xattr.h')
-rw-r--r--libc/include/sys/xattr.h137
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