#include "idl_types.h" /* NFS4 ACL format on disk see http://www.suse.de/~agruen/nfs4acl/ */ import "misc.idl", "security.idl"; [ uuid("18763978-8625-abc3-54ca-9892bacdf321"), version(1.0), pointer_default(unique) ] interface nfs4acl { const char *NFS4ACL_XATTR_NAME = "system.nfs4acl"; const char *NFS4ACL_XATTR_OWNER_WHO = "OWNER@"; const char *NFS4ACL_XATTR_GROUP_WHO = "GROUP@"; const char *NFS4ACL_XATTR_EVERYONE_WHO = "EVERYONE@"; /* these structures use the same bit values and other constants as in security.idl */ typedef [flag(NDR_BIG_ENDIAN)] struct { uint16 e_type; uint16 e_flags; uint32 e_mask; uint32 e_id; utf8string e_who; [flag(NDR_ALIGN4)] DATA_BLOB _pad; } nfs4ace; typedef [public,flag(NDR_BIG_ENDIAN)] struct { uint8 a_version; uint8 a_flags; uint16 a_count; uint32 a_owner_mask; uint32 a_group_mask; uint32 a_other_mask; nfs4ace ace[a_count]; } nfs4acl; NTSTATUS nfs4acl_test( [in] nfs4acl acl ); }