From 493e6e6f47b020f12ec45dd106d8f1fa6e2f9636 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Wed, 16 Jan 2002 02:42:47 +0000 Subject: At leadt don't lose this - I need to re-sync trans2.c between 2.2.x and HEAD soon. Jeremy. (This used to be commit 2f57257558b67b4a5106fece269ce55643464683) --- source3/include/trans2.h | 93 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 66 insertions(+), 27 deletions(-) diff --git a/source3/include/trans2.h b/source3/include/trans2.h index e05440c796..067607e1cb 100644 --- a/source3/include/trans2.h +++ b/source3/include/trans2.h @@ -307,6 +307,17 @@ Byte offset Type name description #define SMB_FILE_TRACKING_INFORMATION 1036 #define SMB_FILE_MAXIMUM_INFORMATION 1037 +/* NT passthough levels for qfsinfo. */ + +#define SMB_FS_VOLUME_INFORMATION 1001 +#define SMB_FS_LABEL_INFORMATION 1002 +#define SMB_FS_SIZE_INFORMATION 1003 +#define SMB_FS_DEVICE_INFORMATION 1004 +#define SMB_FS_ATTRIBUTE_INFORMATION 1005 +#define SMB_FS_CONTROL_INFORMATION 1006 +#define SMB_FS_FULL_SIZE_INFORMATION 1007 +#define SMB_FS_OBJECTID_INFORMATION 1008 + /* UNIX CIFS Extensions - created by HP */ /* * UNIX CIFS Extensions have the range 0x200 - 0x2FF reserved. @@ -321,34 +332,39 @@ Byte offset Type name description #define SMB_QUERY_FILE_UNIX_BASIC 0x200 /* UNIX File Info*/ #define SMB_SET_FILE_UNIX_BASIC 0x200 -#define MODE_NO_CHANGE -1 /* file mode value which */ +#define MODE_NO_CHANGE 0xFFFFFFFF /* file mode value which */ /* means "don't change it" */ -/* - LARGE_INTEGER EndOfFile File size - LARGE_INTEGER Blocks Number of bytes used on disk (st_blocks). - LARGE_INTEGER CreationTime Creation time - LARGE_INTEGER LastAccessTime Last access time - LARGE_INTEGER LastModificationTime Last modification time - LARGE_INTEGER Uid Numeric user id for the owner - LARGE_INTEGER Gid Numeric group id of owner - ULONG Type Enumeration specifying the pathname type: - 0 -- File - 1 -- Directory - 2 -- Symbolic link - 3 -- Character device - 4 -- Block device - 5 -- FIFO (named pipe) - 6 -- Unix domain socket - - LARGE_INTEGER devmajor Major device number if type is device - LARGE_INTEGER devminor Minor device number if type is device - LARGE_INTEGER uniqueid This is a server-assigned unique id for the file. The client - will typically map this onto an inode number. The scope of - uniqueness is the share. - LARGE_INTEGER permissions Standard UNIX file permissions - see below. - LARGE_INTEGER nlinks The number of directory entries that map to this entry - (number of hard links) +#define UID_NO_CHANGE 0xFFFFFFFF +#define GID_NO_CHANGE 0xFFFFFFFF +/* +Offset Size Name +0 LARGE_INTEGER EndOfFile File size +8 LARGE_INTEGER Blocks Number of bytes used on disk (st_blocks). +16 LARGE_INTEGER CreationTime Creation time +24 LARGE_INTEGER LastAccessTime Last access time +32 LARGE_INTEGER LastModificationTime Last modification time +40 LARGE_INTEGER Uid Numeric user id for the owner +48 LARGE_INTEGER Gid Numeric group id of owner +56 ULONG Type Enumeration specifying the pathname type: + 0 -- File + 1 -- Directory + 2 -- Symbolic link + 3 -- Character device + 4 -- Block device + 5 -- FIFO (named pipe) + 6 -- Unix domain socket + +60 LARGE_INTEGER devmajor Major device number if type is device +68 LARGE_INTEGER devminor Minor device number if type is device +76 LARGE_INTEGER uniqueid This is a server-assigned unique id for the file. The client + will typically map this onto an inode number. The scope of + uniqueness is the share. +84 LARGE_INTEGER permissions Standard UNIX file permissions - see below. +92 LARGE_INTEGER nlinks The number of directory entries that map to this entry + (number of hard links) + +100 - end. */ /* UNIX filetype mappings. */ @@ -366,7 +382,7 @@ Byte offset Type name description * Oh this is fun. "Standard UNIX permissions" has no * meaning in POSIX. We need to define the mapping onto * and off the wire as this was not done in the original HP - * code. JRA. + * spec. JRA. */ #define UNIX_X_OTH 0000001 @@ -396,4 +412,27 @@ Byte offset Type name description #define SMB_FIND_FILE_UNIX 0x202 +/* + Info level for QVOLINFO - returns version of CIFS UNIX extensions, plus + 64-bits worth of capability fun :-). +*/ + +#define SMB_CIFS_UNIX_QUERY_INFO 0x200 + +/* Returns the following. + + UINT16 major version number + UINT16 minor version number + LARGE_INTEGER capability bitfield + +*/ + +#define CIFS_UNIX_MAJOR_VERSION 1 +#define CIFS_UNIX_MINOR_VERSION 0 + +#define CIFS_UNIX_FCNTL_LOCKS_CAP 0x1 +#define CIFS_UNIX_POSIX_ACLS_CAP 0x2 + +/* ... more as we think of them :-). */ + #endif -- cgit