git add -f bin/default/librpc/gen_ndr/*.{c,h,ndr,pidl} bin/default/source*/librpc...
[metze/samba/wip.git] / bin / default / librpc / gen_ndr / xattr.h
1 /* header auto-generated by pidl */
2
3 #ifndef _PIDL_HEADER_xattr
4 #define _PIDL_HEADER_xattr
5
6 #include <stdint.h>
7
8 #include "libcli/util/ntstatus.h"
9
10 #include "librpc/gen_ndr/security.h"
11 #ifndef _HEADER_xattr
12 #define _HEADER_xattr
13
14 #define XATTR_DOSATTRIB_NAME    ( "user.DosAttrib" )
15 #define XATTR_DOSATTRIB_NAME_S3 ( "user.DOSATTRIB" )
16 #define XATTR_DOSATTRIB_ESTIMATED_SIZE  ( 64 )
17 #define XATTR_DOSEAS_NAME       ( "user.DosEAs" )
18 #define XATTR_DOSSTREAMS_NAME   ( "user.DosStreams" )
19 #define XATTR_STREAM_FLAG_INTERNAL      ( 0x00000001 )
20 #define XATTR_DOSSTREAM_PREFIX  ( "user.DosStream." )
21 #define XATTR_MAX_STREAM_SIZE   ( 0x4000 )
22 #define XATTR_MAX_STREAM_SIZE_TDB       ( 0x100000 )
23 #define XATTR_NTACL_NAME        ( "security.NTACL" )
24 #define XATTR_SD_HASH_SIZE      ( 64 )
25 #define XATTR_SD_HASH_TYPE_NONE ( 0x0 )
26 #define XATTR_SD_HASH_TYPE_SHA256       ( 0x1 )
27 struct xattr_DosInfoFFFFCompat {
28         uint32_t attrib;
29 };
30
31 struct xattr_DosInfo1 {
32         uint32_t attrib;
33         uint32_t ea_size;
34         uint64_t size;
35         uint64_t alloc_size;
36         NTTIME create_time;
37         NTTIME change_time;
38 };
39
40 struct xattr_DosInfo2Old {
41         uint32_t flags;
42         uint32_t attrib;
43         uint32_t ea_size;
44         uint64_t size;
45         uint64_t alloc_size;
46         NTTIME create_time;
47         NTTIME change_time;
48         NTTIME write_time;
49         const char * name;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
50 };
51
52 /* bitmap xattr_DosInfoValidFlags */
53 #define XATTR_DOSINFO_ATTRIB ( 0x00000001 )
54 #define XATTR_DOSINFO_EA_SIZE ( 0x00000002 )
55 #define XATTR_DOSINFO_SIZE ( 0x00000004 )
56 #define XATTR_DOSINFO_ALLOC_SIZE ( 0x00000008 )
57 #define XATTR_DOSINFO_CREATE_TIME ( 0x00000010 )
58 #define XATTR_DOSINFO_CHANGE_TIME ( 0x00000020 )
59
60 struct xattr_DosInfo3 {
61         uint32_t valid_flags;
62         uint32_t attrib;
63         uint32_t ea_size;
64         uint64_t size;
65         uint64_t alloc_size;
66         NTTIME create_time;
67         NTTIME change_time;
68 };
69
70 union xattr_DosInfo {
71         struct xattr_DosInfoFFFFCompat compatinfoFFFF;/* [case(0xFFFF)] */
72         struct xattr_DosInfo1 info1;/* [case] */
73         struct xattr_DosInfo2Old oldinfo2;/* [case(2)] */
74         struct xattr_DosInfo3 info3;/* [case(3)] */
75 }/* [public,switch_type(uint16)] */;
76
77 struct xattr_DosAttrib {
78         uint16_t version;
79         union xattr_DosInfo info;/* [switch_is(version)] */
80 }/* [public] */;
81
82 struct xattr_DOSATTRIB {
83         const char * attrib_hex;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
84         uint16_t version;
85         union xattr_DosInfo info;/* [switch_is(version)] */
86 }/* [noprint,nopull,nopush,public] */;
87
88 struct xattr_EA {
89         const char * name;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
90         DATA_BLOB value;
91 };
92
93 struct xattr_DosEAs {
94         uint16_t num_eas;
95         struct xattr_EA *eas;/* [size_is(num_eas),unique] */
96 }/* [public] */;
97
98 struct tdb_xattrs {
99         uint32_t num_eas;
100         struct xattr_EA *eas;
101 }/* [public] */;
102
103 struct xattr_DosStream {
104         uint32_t flags;
105         uint64_t size;
106         uint64_t alloc_size;
107         const char * name;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
108 };
109
110 struct xattr_DosStreams {
111         uint32_t num_streams;
112         struct xattr_DosStream *streams;/* [size_is(num_streams),unique] */
113 }/* [public] */;
114
115 struct security_descriptor_hash_v2 {
116         struct security_descriptor *sd;/* [unique] */
117         uint8_t hash[16];
118 }/* [public] */;
119
120 struct security_descriptor_hash_v3 {
121         struct security_descriptor *sd;/* [unique] */
122         uint16_t hash_type;
123         uint8_t hash[64];
124 }/* [public] */;
125
126 struct security_descriptor_hash_v4 {
127         struct security_descriptor *sd;/* [unique] */
128         uint16_t hash_type;
129         uint8_t hash[64];
130         const char * description;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
131         NTTIME time;
132         uint8_t sys_acl_hash[64];
133 }/* [public] */;
134
135 union xattr_NTACL_Info {
136         struct security_descriptor *sd;/* [case,unique] */
137         struct security_descriptor_hash_v2 *sd_hs2;/* [case(2),unique] */
138         struct security_descriptor_hash_v3 *sd_hs3;/* [case(3),unique] */
139         struct security_descriptor_hash_v4 *sd_hs4;/* [case(4),unique] */
140 }/* [switch_type(uint16)] */;
141
142 struct xattr_NTACL {
143         uint16_t version;
144         union xattr_NTACL_Info info;/* [switch_is(version)] */
145 }/* [public] */;
146
147 struct xattr_sys_acl_hash_wrapper {
148         DATA_BLOB acl_as_blob;
149         uid_t owner;
150         gid_t group;
151         uint32_t mode;
152 };
153
154
155 struct xattr_parse_DOSATTRIB {
156         struct {
157                 struct xattr_DOSATTRIB x;
158         } in;
159
160 };
161
162 #endif /* _HEADER_xattr */
163 #endif /* _PIDL_HEADER_xattr */