summaryrefslogtreecommitdiff
path: root/include/libacl.h
diff options
context:
space:
mode:
authorNathan Scott <nathans@sgi.com>2002-02-25 22:47:37 +0000
committerNathan Scott <nathans@sgi.com>2002-02-25 22:47:37 +0000
commit51bb00dbddbc88e4c53bd893330b439d121a26f5 (patch)
tree68a1b1bfc617fb9abdcb49f75087d43996b69eee /include/libacl.h
parent8744e320e5862f5ec45da57b85da78d1c375d1a5 (diff)
downloadacl-51bb00dbddbc88e4c53bd893330b439d121a26f5.tar.gz
Merge of xfs-cmds-2.4.18:slinx:112279a by nathans.
add missing SUBDIRS so the source tarball is built correctly.
Diffstat (limited to 'include/libacl.h')
-rw-r--r--include/libacl.h123
1 files changed, 123 insertions, 0 deletions
diff --git a/include/libacl.h b/include/libacl.h
index e69de29..600d4ee 100644
--- a/include/libacl.h
+++ b/include/libacl.h
@@ -0,0 +1,123 @@
+/*
+ File: libacl.h
+
+ (C) 1999, 2000 Andreas Gruenbacher, <a.gruenbacher@computer.org>
+*/
+
+#ifndef __ACL_LIBACL_H
+#define __ACL_LIBACL_H
+
+#include <sys/acl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* acl_entry_to_any_str(), acl_to_any_text() */
+
+/* Print NO, SOME or ALL effective permissions comments. SOME prints
+ effective rights comments for entries which have different permissions
+ than effective permissions. */
+#define TEXT_NO_EFFECTIVE 0x00
+#define TEXT_SOME_EFFECTIVE 0x01
+#define TEXT_ALL_EFFECTIVE 0x02
+
+/* Align effective permission comments to column 32 using tabs or
+ use a single tab. */
+#define TEXT_SMART_INDENT 0x04
+
+/* User and group IDs instead of names. */
+#define TEXT_NUMERIC_IDS 0x08
+
+/* Only output the first letter of entry types
+ ("u::rwx" instead of "user::rwx"). */
+#define TEXT_ABBREVIATE 0x10
+
+/* Don't put an end-of-line ('\n') after the ACL */
+#define TEXT_NO_ENDOFLINE 0x20
+
+/* acl_check error codes */
+
+#define ACL_MULTI_ERROR (0x1000) /* multiple unique objects */
+#define ACL_DUPLICATE_ERROR (0x2000) /* duplicate Id's in entries */
+#define ACL_MISS_ERROR (0x3000) /* missing required entry */
+#define ACL_ENTRY_ERROR (0x4000) /* wrong entry type */
+
+extern char *
+acl_to_any_text(
+ acl_t acl,
+ ssize_t *len_p,
+ const char *prefix,
+ char separator,
+ const char *suffix,
+ int options);
+extern ssize_t
+acl_entry_to_any_str(
+ const acl_entry_t entry_d,
+ char *text_p,
+ ssize_t size,
+ const acl_entry_t mask_d,
+ const char *prefix,
+ int options);
+extern int
+acl_cmp(
+ acl_t acl1,
+ acl_t acl2);
+extern int
+acl_check(
+ acl_t acl,
+ int *last);
+extern acl_t
+acl_from_mode(
+ mode_t mode);
+extern int
+acl_equiv_mode(
+ acl_t acl,
+ mode_t *mode_p);
+extern acl_t
+acl_get_file_mode(
+ const char *path_p);
+extern acl_t
+acl_get_fd_mode(
+ int fd);
+extern int
+acl_set_file_mode(
+ const char *path_p,
+ acl_type_t type,
+ acl_t acl);
+extern int
+acl_set_fd_mode(
+ int fd,
+ acl_t acl);
+int
+acl_extended_file(
+ const char *path_p);
+int
+acl_extended_fd(
+ int fd);
+extern int
+acl_print(
+ FILE *file,
+ acl_t acl,
+ const char *prefix,
+ int options);
+extern int
+acl_entries(
+ acl_t acl);
+extern const char *
+acl_error(
+ int code);
+extern int
+acl_get_perm(
+ acl_permset_t permset_d,
+ acl_perm_t perm);
+extern int
+acl_delete_acc_file(
+ const char *file);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __ACL_LIBACL_H */
+