1 /* cygwin/acl.h header file for Cygwin.
3 Copyright 1999, 2000, 2001 Red Hat, Inc.
4 Written by C. Vinschen.
6 This file is part of Cygwin.
8 This software is a copyrighted work licensed under the terms of the
9 Cygwin license. Please consult the file "CYGWIN_LICENSE" for
20 #include <sys/types.h>
23 /* Values for `cmd' in calls to acl(2) and facl(2) */
26 #define GETACLCNT (0x2)
28 #define MIN_ACL_ENTRIES (4) // minimal acl entries from GETACLCNT
29 #define MAX_ACL_ENTRIES (256) // max entries of each type
31 // Return values of aclcheck(3) in case of error */
32 #define GRP_ERROR (0x1)
33 #define USER_ERROR (0x2)
34 #define CLASS_ERROR (0x3)
35 #define OTHER_ERROR (0x4)
36 #define DUPLICATE_ERROR (0x5)
37 #define ENTRY_ERROR (0x6)
38 #define MISS_ERROR (0x7) // which = -1
39 #define MEM_ERROR (0x8) // which = -1
41 // Values for entry type of struct acl
42 #define USER_OBJ (0x0001) // owner
43 #define USER (0x0002) // additional user
44 #define GROUP_OBJ (0x0004) // owning group
45 #define GROUP (0x0008) // additional group
46 #define CLASS_OBJ (0x0010) // mask entry
47 #define OTHER_OBJ (0x0020) // others
48 #define ACL_DEFAULT (0x1000) // default flag
49 #define DEF_USER_OBJ (ACL_DEFAULT|USER_OBJ) // default owner
50 #define DEF_USER (ACL_DEFAULT|USER) // default additional user
51 #define DEF_GROUP_OBJ (ACL_DEFAULT|GROUP_OBJ) // default owning group
52 #define DEF_GROUP (ACL_DEFAULT|GROUP) // default additional group
53 #define DEF_CLASS_OBJ (ACL_DEFAULT|CLASS_OBJ) // default mask entry
54 #define DEF_OTHER_OBJ (ACL_DEFAULT|OTHER_OBJ) // default others
55 // Values with equivalent meanings
56 #define USER_OWNER USER_OBJ
57 #define GROUP_OWNER GROUP_OBJ
58 #define MASK CLASS_OBJ
59 #define OTHER OTHER_OBJ
62 int a_type
; /* entry type */
63 uid_t a_id
; /* UID | GID */
64 mode_t a_perm
; /* permissions */
67 int _EXFUN(acl
,(const char *path
, int cmd
, int nentries
, aclent_t
*aclbufp
));
68 int _EXFUN(lacl
,(const char *path
, int cmd
, int nentries
, aclent_t
*aclbufp
));
69 int _EXFUN(facl
,(int fd
, int cmd
, int nentries
, aclent_t
*aclbufp
));
70 int _EXFUN(aclcheck
,(aclent_t
*aclbufp
, int nentries
, int *which
));
71 int _EXFUN(aclsort
,(int nentries
, int calclass
, aclent_t
*aclbufp
));
72 int _EXFUN(acltomode
,(aclent_t
*aclbufp
, int nentries
, mode_t
*modep
));
73 int _EXFUN(aclfrommode
,(aclent_t
*aclbufp
, int nentries
, mode_t
*modep
));
74 int _EXFUN(acltopbits
,(aclent_t
*aclbufp
, int nentries
, mode_t
*pbitsp
));
75 int _EXFUN(aclfrompbits
,(aclent_t
*aclbufp
, int nentries
, mode_t
*pbitsp
));
76 char *_EXFUN(acltotext
,(aclent_t
*aclbufp
, int aclcnt
));
77 aclent_t
*_EXFUN(aclfromtext
,(char *acltextp
, int *aclcnt
));
82 #endif /* _CYGWIN_ACL_H */