]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - include/linux/posix_acl.h
Move c_src dirs back to toplevel
[bcachefs-tools-debian] / include / linux / posix_acl.h
diff --git a/include/linux/posix_acl.h b/include/linux/posix_acl.h
new file mode 100644 (file)
index 0000000..1d21bfe
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+  File: linux/posix_acl.h
+
+  (C) 2002 Andreas Gruenbacher, <a.gruenbacher@computer.org>
+*/
+
+
+#ifndef __LINUX_POSIX_ACL_H
+#define __LINUX_POSIX_ACL_H
+
+#include <linux/bug.h>
+#include <linux/slab.h>
+#include <linux/rcupdate.h>
+
+#define ACL_UNDEFINED_ID       (-1)
+
+/* a_type field in acl_user_posix_entry_t */
+#define ACL_TYPE_ACCESS                (0x8000)
+#define ACL_TYPE_DEFAULT       (0x4000)
+
+/* e_tag entry in struct posix_acl_entry */
+#define ACL_USER_OBJ           (0x01)
+#define ACL_USER               (0x02)
+#define ACL_GROUP_OBJ          (0x04)
+#define ACL_GROUP              (0x08)
+#define ACL_MASK               (0x10)
+#define ACL_OTHER              (0x20)
+
+/* permissions in the e_perm field */
+#define ACL_READ               (0x04)
+#define ACL_WRITE              (0x02)
+#define ACL_EXECUTE            (0x01)
+
+struct posix_acl_entry {
+       short                   e_tag;
+       unsigned short          e_perm;
+       union {
+               uid_t           e_uid;
+               gid_t           e_gid;
+       };
+};
+
+struct posix_acl {
+       struct rcu_head         a_rcu;
+       unsigned int            a_count;
+       struct posix_acl_entry  a_entries[0];
+};
+
+#endif  /* __LINUX_POSIX_ACL_H */