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