1 /* Internal implementation of access control lists.
3 Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc.
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 3 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>.
18 Written by Paul Eggert and Andreas Gruenbacher. */
25 #ifdef HAVE_ACL_LIBACL_H
26 # include <acl/libacl.h>
41 #define _(msgid) gettext (msgid)
44 # define HAVE_FCHMOD false
45 # define fchmod(fd, mode) (-1)
48 #ifndef MIN_ACL_ENTRIES
49 # define MIN_ACL_ENTRIES 4
52 /* POSIX 1003.1e (draft 17) */
53 #ifndef HAVE_ACL_GET_FD
54 # define HAVE_ACL_GET_FD false
56 # define acl_get_fd(fd) (NULL)
59 /* POSIX 1003.1e (draft 17) */
60 #ifndef HAVE_ACL_SET_FD
61 # define HAVE_ACL_SET_FD false
63 # define acl_set_fd(fd, acl) (-1)
67 #ifndef HAVE_ACL_EXTENDED_FILE
68 # define HAVE_ACL_EXTENDED_FILE false
69 # define acl_extended_file(name) (-1)
73 #ifndef HAVE_ACL_FROM_MODE
74 # define HAVE_ACL_FROM_MODE false
75 # define acl_from_mode(mode) (NULL)
78 #define ACL_NOT_WELL_SUPPORTED(Err) \
79 ((Err) == ENOTSUP || (Err) == ENOSYS || (Err) == EINVAL || (Err) == EBUSY)
81 /* Define a replacement for acl_entries if needed. */
82 #if USE_ACL && HAVE_ACL_GET_FILE && HAVE_ACL_FREE && !HAVE_ACL_ENTRIES
83 # define acl_entries rpl_acl_entries
84 int acl_entries (acl_t);