s4:librpc/rpc: use talloc_zero for 'struct rpc_request'
[Samba/gebeck_regimport.git] / librpc / idl / smb_acl.idl
blob7f672996b0b4196dee9de8a36bfe4f32e561a79b
1 /*
2 Unix SMB/CIFS implementation.
3 Portable SMB ACL interface
4 Copyright (C) Jeremy Allison 2000
5 Copyright (C) Andrew Bartlett 2012
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>.
22 /* Allow the smb_acl interface to be pushed into an NDR blob and read/written in python */
24 pointer_default(unique)
26 interface smb_acl
29 const int SMB_ACL_READ = 4;
30 const int SMB_ACL_WRITE = 2;
31 const int SMB_ACL_EXECUTE = 1;
33 /* Types of ACLs. */
34 typedef enum {
35 SMB_ACL_TAG_INVALID = 0,
36 SMB_ACL_USER = 1,
37 SMB_ACL_USER_OBJ = 2,
38 SMB_ACL_GROUP = 3,
39 SMB_ACL_GROUP_OBJ = 4,
40 SMB_ACL_OTHER = 5,
41 SMB_ACL_MASK = 6
42 } smb_acl_tag_t;
44 typedef struct {
45 smb_acl_tag_t a_type;
46 mode_t a_perm;
47 uid_t uid;
48 gid_t gid;
49 } smb_acl_entry;
51 [public] typedef struct {
52 int size;
53 int count;
54 int next;
55 [size_is(count)] smb_acl_entry acl[*];
56 } smb_acl_t;
58 const int SMB_ACL_FIRST_ENTRY = 0;
59 const int SMB_ACL_NEXT_ENTRY = 1;
61 const int SMB_ACL_TYPE_ACCESS = 0;
62 const int SMB_ACL_TYPE_DEFAULT = 1;