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