Code indentation.
[midnight-commander.git] / src / vfs / smbfs / helpers / include / trans2.h
blobc57d7330a0b3ec17edd2924f55e4ba869ddd0658
1 /*
2 Unix SMB/Netbios implementation.
3 Version 1.9.
4 SMB transaction2 handling
5 */
7 #ifndef _TRANS2_H_
8 #define _TRANS2_H_
10 /* Define the structures needed for the trans2 calls. */
12 /*******************************************************
13 For DosFindFirst/DosFindNext - level 1
15 MAXFILENAMELEN = 255;
16 FDATE == uint16
17 FTIME == uint16
18 ULONG == uint32
19 USHORT == uint16
21 typedef struct _FILEFINDBUF {
22 Byte offset Type name description
23 -------------+-------+-------------------+--------------
24 0 FDATE fdateCreation;
25 2 FTIME ftimeCreation;
26 4 FDATE fdateLastAccess;
27 6 FTIME ftimeLastAccess;
28 8 FDATE fdateLastWrite;
29 10 FTIME ftimeLastWrite;
30 12 ULONG cbFile file length in bytes
31 16 ULONG cbFileAlloc size of file allocation unit
32 20 USHORT attrFile
33 22 UCHAR cchName length of name to follow (not including zero)
34 23 UCHAR achName[MAXFILENAMELEN]; Null terminated name
35 } FILEFINDBUF;
36 *********************************************************/
38 #define l1_fdateCreation 0
39 #define l1_fdateLastAccess 4
40 #define l1_fdateLastWrite 8
41 #define l1_cbFile 12
42 #define l1_cbFileAlloc 16
43 #define l1_attrFile 20
44 #define l1_cchName 22
45 #define l1_achName 23
47 /**********************************************************
48 For DosFindFirst/DosFindNext - level 2
50 typedef struct _FILEFINDBUF2 {
51 Byte offset Type name description
52 -------------+-------+-------------------+--------------
53 0 FDATE fdateCreation;
54 2 FTIME ftimeCreation;
55 4 FDATE fdateLastAccess;
56 6 FTIME ftimeLastAccess;
57 8 FDATE fdateLastWrite;
58 10 FTIME ftimeLastWrite;
59 12 ULONG cbFile file length in bytes
60 16 ULONG cbFileAlloc size of file allocation unit
61 20 USHORT attrFile
62 22 ULONG cbList Extended attribute list (always 0)
63 26 UCHAR cchName length of name to follow (not including zero)
64 27 UCHAR achName[MAXFILENAMELEN]; Null terminated name
65 } FILEFINDBUF2;
66 *************************************************************/
68 #define l2_fdateCreation 0
69 #define l2_fdateLastAccess 4
70 #define l2_fdateLastWrite 8
71 #define l2_cbFile 12
72 #define l2_cbFileAlloc 16
73 #define l2_attrFile 20
74 #define l2_cbList 22
75 #define l2_cchName 26
76 #define l2_achName 27
79 /**********************************************************
80 For DosFindFirst/DosFindNext - level 260
82 typedef struct _FILEFINDBUF260 {
83 Byte offset Type name description
84 -------------+-------+-------------------+--------------
85 0 ULONG NextEntryOffset;
86 4 ULONG FileIndex;
87 8 LARGE_INTEGER CreationTime;
88 16 LARGE_INTEGER LastAccessTime;
89 24 LARGE_INTEGER LastWriteTime;
90 32 LARGE_INTEGER ChangeTime;
91 40 LARGE_INTEGER EndOfFile;
92 48 LARGE_INTEGER AllocationSize;
93 56 ULONG FileAttributes;
94 60 ULONG FileNameLength;
95 64 ULONG EaSize;
96 68 CHAR ShortNameLength;
97 70 UNICODE ShortName[12];
98 94 UNICODE FileName[];
99 *************************************************************/
101 #define l260_achName 94
104 /**********************************************************
105 For DosQueryPathInfo/DosQueryFileInfo/DosSetPathInfo/
106 DosSetFileInfo - level 1
108 typedef struct _FILESTATUS {
109 Byte offset Type name description
110 -------------+-------+-------------------+--------------
111 0 FDATE fdateCreation;
112 2 FTIME ftimeCreation;
113 4 FDATE fdateLastAccess;
114 6 FTIME ftimeLastAccess;
115 8 FDATE fdateLastWrite;
116 10 FTIME ftimeLastWrite;
117 12 ULONG cbFile file length in bytes
118 16 ULONG cbFileAlloc size of file allocation unit
119 20 USHORT attrFile
120 } FILESTATUS;
121 *************************************************************/
123 /* Use the l1_ defines from DosFindFirst */
125 /**********************************************************
126 For DosQueryPathInfo/DosQueryFileInfo/DosSetPathInfo/
127 DosSetFileInfo - level 2
129 typedef struct _FILESTATUS2 {
130 Byte offset Type name description
131 -------------+-------+-------------------+--------------
132 0 FDATE fdateCreation;
133 2 FTIME ftimeCreation;
134 4 FDATE fdateLastAccess;
135 6 FTIME ftimeLastAccess;
136 8 FDATE fdateLastWrite;
137 10 FTIME ftimeLastWrite;
138 12 ULONG cbFile file length in bytes
139 16 ULONG cbFileAlloc size of file allocation unit
140 20 USHORT attrFile
141 22 ULONG cbList Length of EA's (0)
142 } FILESTATUS2;
143 *************************************************************/
145 /* Use the l2_ #defines from DosFindFirst */
147 /**********************************************************
148 For DosQFSInfo/DosSetFSInfo - level 1
150 typedef struct _FSALLOCATE {
151 Byte offset Type name description
152 -------------+-------+-------------------+--------------
153 0 ULONG idFileSystem id of file system
154 4 ULONG cSectorUnit number of sectors per allocation unit
155 8 ULONG cUnit number of allocation units
156 12 ULONG cUnitAvail Available allocation units
157 16 USHORT cbSector bytes per sector
158 } FSALLOCATE;
159 *************************************************************/
161 #define l1_idFileSystem 0
162 #define l1_cSectorUnit 4
163 #define l1_cUnit 8
164 #define l1_cUnitAvail 12
165 #define l1_cbSector 16
167 /**********************************************************
168 For DosQFSInfo/DosSetFSInfo - level 2
170 typedef struct _FSINFO {
171 Byte offset Type name description
172 -------------+-------+-------------------+--------------
173 0 FDATE vol_fdateCreation
174 2 FTIME vol_ftimeCreation
175 4 UCHAR vol_cch length of volume name (excluding NULL)
176 5 UCHAR vol_szVolLabel[12] volume name
177 } FSINFO;
178 *************************************************************/
180 #define SMB_INFO_STANDARD 1
181 #define SMB_INFO_QUERY_EA_SIZE 2
182 #define SMB_INFO_QUERY_EAS_FROM_LIST 3
183 #define SMB_INFO_QUERY_ALL_EAS 4
184 #define SMB_INFO_IS_NAME_VALID 6
185 #define SMB_QUERY_FS_LABEL_INFO 0x101
186 #define SMB_QUERY_FS_VOLUME_INFO 0x102
187 #define SMB_QUERY_FS_SIZE_INFO 0x103
188 #define SMB_QUERY_FS_DEVICE_INFO 0x104
189 #define SMB_QUERY_FS_ATTRIBUTE_INFO 0x105
192 #define l2_vol_fdateCreation 0
193 #define l2_vol_cch 4
194 #define l2_vol_szVolLabel 5
197 #define SMB_QUERY_FILE_BASIC_INFO 0x101
198 #define SMB_QUERY_FILE_STANDARD_INFO 0x102
199 #define SMB_QUERY_FILE_EA_INFO 0x103
200 #define SMB_QUERY_FILE_NAME_INFO 0x104
201 #define SMB_QUERY_FILE_ALLOCATION_INFO 0x105
202 #define SMB_QUERY_FILE_END_OF_FILEINFO 0x106
203 #define SMB_QUERY_FILE_ALL_INFO 0x107
204 #define SMB_QUERY_FILE_ALT_NAME_INFO 0x108
205 #define SMB_QUERY_FILE_STREAM_INFO 0x109
207 #define SMB_FIND_FILE_DIRECTORY_INFO 0x101
208 #define SMB_FIND_FILE_FULL_DIRECTORY_INFO 0x102
209 #define SMB_FIND_FILE_NAMES_INFO 0x103
210 #define SMB_FIND_FILE_BOTH_DIRECTORY_INFO 0x104
212 #define SMB_SET_FILE_BASIC_INFO 0x101
213 #define SMB_SET_FILE_DISPOSITION_INFO 0x102
214 #define SMB_SET_FILE_ALLOCATION_INFO 0x103
215 #define SMB_SET_FILE_END_OF_FILE_INFO 0x104
218 * Thursby MAC extensions....
221 #define SMB_MAC_QUERY_FS_INFO 0x301
223 #define DIRLEN_GUESS (45+MAX(l1_achName,l2_achName))
226 * DeviceType and Characteristics returned in a
227 * SMB_QUERY_FS_DEVICE_INFO call.
230 #define DEVICETYPE_CD_ROM 0x2
231 #define DEVICETYPE_CD_ROM_FILE_SYSTEM 0x3
232 #define DEVICETYPE_DISK 0x7
233 #define DEVICETYPE_DISK_FILE_SYSTEM 0x8
234 #define DEVICETYPE_FILE_SYSTEM 0x9
236 /* Characteristics. */
237 #define TYPE_REMOVABLE_MEDIA 0x1
238 #define TYPE_READ_ONLY_DEVICE 0x2
239 #define TYPE_FLOPPY 0x4
240 #define TYPE_WORM 0x8
241 #define TYPE_REMOTE 0x10
242 #define TYPE_MOUNTED 0x20
243 #define TYPE_VIRTUAL 0x40
245 #endif