|
rpm-build |
0a0c83 |
/*
|
|
rpm-build |
0a0c83 |
File: acl_ea.h
|
|
rpm-build |
0a0c83 |
|
|
rpm-build |
0a0c83 |
(extended attribute representation of access control lists)
|
|
rpm-build |
0a0c83 |
|
|
rpm-build |
0a0c83 |
Copyright (C) 2002 Andreas Gruenbacher, <agruen@suse.de>
|
|
rpm-build |
0a0c83 |
|
|
rpm-build |
0a0c83 |
This program is free software: you can redistribute it and/or modify it
|
|
rpm-build |
0a0c83 |
under the terms of the GNU Lesser General Public License as published by
|
|
rpm-build |
0a0c83 |
the Free Software Foundation, either version 2.1 of the License, or
|
|
rpm-build |
0a0c83 |
(at your option) any later version.
|
|
rpm-build |
0a0c83 |
|
|
rpm-build |
0a0c83 |
This program is distributed in the hope that it will be useful,
|
|
rpm-build |
0a0c83 |
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
rpm-build |
0a0c83 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
rpm-build |
0a0c83 |
GNU Lesser General Public License for more details.
|
|
rpm-build |
0a0c83 |
|
|
rpm-build |
0a0c83 |
You should have received a copy of the GNU Lesser General Public License
|
|
rpm-build |
0a0c83 |
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
rpm-build |
0a0c83 |
*/
|
|
rpm-build |
0a0c83 |
|
|
rpm-build |
0a0c83 |
#define ACL_EA_ACCESS "system.posix_acl_access"
|
|
rpm-build |
0a0c83 |
#define ACL_EA_DEFAULT "system.posix_acl_default"
|
|
rpm-build |
0a0c83 |
|
|
rpm-build |
0a0c83 |
#define ACL_EA_VERSION 0x0002
|
|
rpm-build |
0a0c83 |
|
|
rpm-build |
0a0c83 |
typedef struct {
|
|
rpm-build |
0a0c83 |
u_int16_t e_tag;
|
|
rpm-build |
0a0c83 |
u_int16_t e_perm;
|
|
rpm-build |
0a0c83 |
u_int32_t e_id;
|
|
rpm-build |
0a0c83 |
} acl_ea_entry;
|
|
rpm-build |
0a0c83 |
|
|
rpm-build |
0a0c83 |
typedef struct {
|
|
rpm-build |
0a0c83 |
u_int32_t a_version;
|
|
rpm-build |
0a0c83 |
acl_ea_entry a_entries[0];
|
|
rpm-build |
0a0c83 |
} acl_ea_header;
|
|
rpm-build |
0a0c83 |
|
|
rpm-build |
0a0c83 |
static inline size_t acl_ea_size(int count)
|
|
rpm-build |
0a0c83 |
{
|
|
rpm-build |
0a0c83 |
return sizeof(acl_ea_header) + count * sizeof(acl_ea_entry);
|
|
rpm-build |
0a0c83 |
}
|
|
rpm-build |
0a0c83 |
|
|
rpm-build |
0a0c83 |
static inline int acl_ea_count(size_t size)
|
|
rpm-build |
0a0c83 |
{
|
|
rpm-build |
0a0c83 |
if (size < sizeof(acl_ea_header))
|
|
rpm-build |
0a0c83 |
return -1;
|
|
rpm-build |
0a0c83 |
size -= sizeof(acl_ea_header);
|
|
rpm-build |
0a0c83 |
if (size % sizeof(acl_ea_entry))
|
|
rpm-build |
0a0c83 |
return -1;
|
|
rpm-build |
0a0c83 |
return size / sizeof(acl_ea_entry);
|
|
rpm-build |
0a0c83 |
}
|
|
rpm-build |
0a0c83 |
|