mirror of
https://github.com/samba-team/samba.git
synced 2024-12-28 07:21:54 +03:00
25f96a4058
blobs. Next I'll change the create timestamp and dos attribute code to use this.
142 lines
3.5 KiB
C
142 lines
3.5 KiB
C
/* 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 */
|