Blame view
include/linux/posix_acl_xattr.h
1.39 KB
1da177e4c Linux-2.6.12-rc2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
/* File: linux/posix_acl_xattr.h Extended attribute system call representation of Access Control Lists. Copyright (C) 2000 by Andreas Gruenbacher <a.gruenbacher@computer.org> Copyright (C) 2002 SGI - Silicon Graphics, Inc <linux-xfs@oss.sgi.com> */ #ifndef _POSIX_ACL_XATTR_H #define _POSIX_ACL_XATTR_H #include <linux/posix_acl.h> /* Extended attribute names */ #define POSIX_ACL_XATTR_ACCESS "system.posix_acl_access" #define POSIX_ACL_XATTR_DEFAULT "system.posix_acl_default" /* Supported ACL a_version fields */ #define POSIX_ACL_XATTR_VERSION 0x0002 /* An undefined entry e_id value */ #define ACL_UNDEFINED_ID (-1) typedef struct { |
f9fd27a25 [PATCH] acl endia... |
26 27 28 |
__le16 e_tag; __le16 e_perm; __le32 e_id; |
1da177e4c Linux-2.6.12-rc2 |
29 30 31 |
} posix_acl_xattr_entry; typedef struct { |
f9fd27a25 [PATCH] acl endia... |
32 |
__le32 a_version; |
1da177e4c Linux-2.6.12-rc2 |
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
posix_acl_xattr_entry a_entries[0]; } posix_acl_xattr_header; static inline size_t posix_acl_xattr_size(int count) { return (sizeof(posix_acl_xattr_header) + (count * sizeof(posix_acl_xattr_entry))); } static inline int posix_acl_xattr_count(size_t size) { if (size < sizeof(posix_acl_xattr_header)) return -1; size -= sizeof(posix_acl_xattr_header); if (size % sizeof(posix_acl_xattr_entry)) return -1; return size / sizeof(posix_acl_xattr_entry); } |
9a59f452a [PATCH] remove <l... |
54 55 |
struct posix_acl *posix_acl_from_xattr(const void *value, size_t size); int posix_acl_to_xattr(const struct posix_acl *acl, void *buffer, size_t size); |
1da177e4c Linux-2.6.12-rc2 |
56 |
#endif /* _POSIX_ACL_XATTR_H */ |