summaryrefslogtreecommitdiff
path: root/librpc/gen_ndr/xattr.h
blob: d85d21d0ba81c1977aef6ac06ec81beef88e2cda (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
/* header auto-generated by pidl */

#include <stdint.h>

#include "libcli/util/ntstatus.h"

#include "librpc/gen_ndr/security.h"
#ifndef _HEADER_xattr
#define _HEADER_xattr

#define XATTR_DOSATTRIB_NAME	( "user.DosAttrib" )
#define XATTR_DOSATTRIB_ESTIMATED_SIZE	( 64 )
#define XATTR_DOSEAS_NAME	( "user.DosEAs" )
#define XATTR_DOSSTREAMS_NAME	( "user.DosStreams" )
#define XATTR_STREAM_FLAG_INTERNAL	( 0x00000001 )
#define XATTR_DOSSTREAM_PREFIX	( "user.DosStream." )
#define XATTR_MAX_STREAM_SIZE	( 0x4000 )
#define XATTR_MAX_STREAM_SIZE_TDB	( 0x100000 )
#define XATTR_NTACL_NAME	( "security.NTACL" )
#define XATTR_SD_HASH_SIZE	( 64 )
#define XATTR_SD_HASH_TYPE_NONE	( 0x0 )
#define XATTR_SD_HASH_TYPE_SHA256	( 0x1 )
struct xattr_DosInfoFFFFCompat {
	uint32_t attrib;
};

struct xattr_DosInfo1 {
	uint32_t attrib;
	uint32_t ea_size;
	uint64_t size;
	uint64_t alloc_size;
	NTTIME create_time;
	NTTIME change_time;
};

struct xattr_DosInfo2Old {
	uint32_t flags;
	uint32_t attrib;
	uint32_t ea_size;
	uint64_t size;
	uint64_t alloc_size;
	NTTIME create_time;
	NTTIME change_time;
	NTTIME write_time;
	const char * name;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
};

/* bitmap xattr_DosInfoValidFlags */
#define XATTR_DOSINFO_ATTRIB ( 0x00000001 )
#define XATTR_DOSINFO_EA_SIZE ( 0x00000002 )
#define XATTR_DOSINFO_SIZE ( 0x00000004 )
#define XATTR_DOSINFO_ALLOC_SIZE ( 0x00000008 )
#define XATTR_DOSINFO_CREATE_TIME ( 0x00000010 )
#define XATTR_DOSINFO_CHANGE_TIME ( 0x00000020 )

struct xattr_DosInfo3 {
	uint32_t valid_flags;
	uint32_t attrib;
	uint32_t ea_size;
	uint64_t size;
	uint64_t alloc_size;
	NTTIME create_time;
	NTTIME change_time;
};

union xattr_DosInfo {
	struct xattr_DosInfoFFFFCompat compatinfoFFFF;/* [case(0xFFFF)] */
	struct xattr_DosInfo1 info1;/* [case] */
	struct xattr_DosInfo2Old oldinfo2;/* [case(2)] */
	struct xattr_DosInfo3 info3;/* [case(3)] */
}/* [public,switch_type(uint16)] */;

struct xattr_DosAttrib {
	uint16_t version;
	union xattr_DosInfo info;/* [switch_is(version)] */
}/* [public] */;

struct xattr_DOSATTRIB {
	const char * attrib_hex;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
	uint16_t version;
	union xattr_DosInfo info;/* [switch_is(version)] */
}/* [noprint,nopull,public,nopush] */;

struct xattr_EA {
	const char * name;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
	DATA_BLOB value;
};

struct xattr_DosEAs {
	uint16_t num_eas;
	struct xattr_EA *eas;/* [unique,size_is(num_eas)] */
}/* [public] */;

struct tdb_xattrs {
	uint32_t num_eas;
	struct xattr_EA *eas;
}/* [public] */;

struct xattr_DosStream {
	uint32_t flags;
	uint64_t size;
	uint64_t alloc_size;
	const char * name;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */
};

struct xattr_DosStreams {
	uint32_t num_streams;
	struct xattr_DosStream *streams;/* [unique,size_is(num_streams)] */
}/* [public] */;

struct security_descriptor_hash_v2 {
	struct security_descriptor *sd;/* [unique] */
	uint8_t hash[16];
}/* [public] */;

struct security_descriptor_hash_v3 {
	struct security_descriptor *sd;/* [unique] */
	uint16_t hash_type;
	uint8_t hash[64];
}/* [public] */;

union xattr_NTACL_Info {
	struct security_descriptor *sd;/* [unique,case] */
	struct security_descriptor_hash_v2 *sd_hs2;/* [unique,case(2)] */
	struct security_descriptor_hash_v3 *sd_hs3;/* [unique,case(3)] */
}/* [switch_type(uint16)] */;

struct xattr_NTACL {
	uint16_t version;
	union xattr_NTACL_Info info;/* [switch_is(version)] */
}/* [public] */;


struct xattr_parse_DOSATTRIB {
	struct {
		struct xattr_DOSATTRIB x;
	} in;

};

#endif /* _HEADER_xattr */