Install msysDVLPR-1.0.0-alpha-1
[msysgit.git] / include / cygwin / acl.h
blob3248b2e68f23c1e1cc27816fd0a1e467e1c7dd59
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
10 details. */
12 #ifndef _CYGWIN_ACL_H
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16 #define _CYGWIN_ACL_H
18 #include <_ansi.h>
20 #include <sys/types.h>
21 #include <sys/stat.h>
23 /* Values for `cmd' in calls to acl(2) and facl(2) */
24 #define SETACL (0x0)
25 #define GETACL (0x1)
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
61 typedef struct acl {
62 int a_type; /* entry type */
63 uid_t a_id; /* UID | GID */
64 mode_t a_perm; /* permissions */
65 } aclent_t;
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));
79 #ifdef __cplusplus
81 #endif
82 #endif /* _CYGWIN_ACL_H */