/* header auto-generated by pidl */ #ifndef _PIDL_HEADER_smb_acl #define _PIDL_HEADER_smb_acl #include #include "libcli/util/ntstatus.h" #ifndef _HEADER_smb_acl #define _HEADER_smb_acl #define SMB_ACL_READ ( 4 ) #define SMB_ACL_WRITE ( 2 ) #define SMB_ACL_EXECUTE ( 1 ) #define SMB_ACL_FIRST_ENTRY ( 0 ) #define SMB_ACL_NEXT_ENTRY ( 1 ) #define SMB_ACL_TYPE_ACCESS ( 0 ) #define SMB_ACL_TYPE_DEFAULT ( 1 ) enum smb_acl_tag_t #ifndef USE_UINT_ENUMS { SMB_ACL_TAG_INVALID=(int)(0), SMB_ACL_USER=(int)(1), SMB_ACL_USER_OBJ=(int)(2), SMB_ACL_GROUP=(int)(3), SMB_ACL_GROUP_OBJ=(int)(4), SMB_ACL_OTHER=(int)(5), SMB_ACL_MASK=(int)(6) } #else { __do_not_use_enum_smb_acl_tag_t=0x7FFFFFFF} #define SMB_ACL_TAG_INVALID ( 0 ) #define SMB_ACL_USER ( 1 ) #define SMB_ACL_USER_OBJ ( 2 ) #define SMB_ACL_GROUP ( 3 ) #define SMB_ACL_GROUP_OBJ ( 4 ) #define SMB_ACL_OTHER ( 5 ) #define SMB_ACL_MASK ( 6 ) #endif ; struct smb_acl_user { uid_t uid; }; struct smb_acl_group { gid_t gid; }; union smb_acl_entry_info { struct smb_acl_user user;/* [case(SMB_ACL_USER)] */ struct smb_acl_group group;/* [case(SMB_ACL_GROUP)] */ }/* [switch_type(uint16)] */; struct smb_acl_entry { enum smb_acl_tag_t a_type; union smb_acl_entry_info info;/* [switch_is(a_type)] */ uint32_t a_perm; }; struct smb_acl_t { int32_t count; int32_t next;/* [value(0)] */ struct smb_acl_entry *acl;/* [size_is(count)] */ }; struct smb_acl_wrapper { struct smb_acl_t *access_acl;/* [unique] */ struct smb_acl_t *default_acl;/* [unique] */ uid_t owner; gid_t group; uint32_t mode; }; #endif /* _HEADER_smb_acl */ #endif /* _PIDL_HEADER_smb_acl */