aeab0a0d10812f434769da5baa64c93391e42471
[vlendec/samba-autobuild/.git] / librpc / idl / nfs4acl.idl
1 #include "idl_types.h"
2
3 /*
4   NFS4 ACL format on disk
5   see http://www.suse.de/~agruen/nfs4acl/
6 */
7
8 import "misc.idl", "security.idl";
9
10 [ uuid("18763978-8625-abc3-54ca-9892bacdf321"),
11   version(1.0),
12   pointer_default(unique)
13 ]
14 interface nfs4acl
15 {
16         const char *NFS4ACL_XATTR_NAME = "system.nfs4acl";
17
18         const char *NFS4ACL_XATTR_OWNER_WHO      = "OWNER@";
19         const char *NFS4ACL_XATTR_GROUP_WHO      = "GROUP@";
20         const char *NFS4ACL_XATTR_EVERYONE_WHO   = "EVERYONE@";
21
22         /* these structures use the same bit values and other constants as
23            in security.idl */
24         typedef [flag(NDR_BIG_ENDIAN)] struct {
25                 uint16 e_type;
26                 uint16 e_flags;
27                 uint32 e_mask;
28                 uint32 e_id;
29                 utf8string e_who;
30                 [flag(NDR_ALIGN4)]  DATA_BLOB _pad;
31         } nfs4ace;
32
33         typedef [public,flag(NDR_BIG_ENDIAN)] struct {
34                 uint8 a_version;
35                 uint8 a_flags;
36                 uint16 a_count;
37                 uint32 a_owner_mask;
38                 uint32 a_group_mask;
39                 uint32 a_other_mask;
40                 nfs4ace ace[a_count];
41         } nfs4acl;
42
43         NTSTATUS nfs4acl_test(
44                 [in]  nfs4acl acl
45                 );
46 }