Print this page
1575 untangle libmlrpc ... (smbsrv)
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/uts/common/smbsrv/ndl/netdfs.ndl
+++ new/usr/src/uts/common/smbsrv/ndl/netdfs.ndl
1 1 /*
2 2 * CDDL HEADER START
3 3 *
4 4 * The contents of this file are subject to the terms of the
5 5 * Common Development and Distribution License (the "License").
6 6 * You may not use this file except in compliance with the License.
7 7 *
8 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 9 * or http://www.opensolaris.org/os/licensing.
10 10 * See the License for the specific language governing permissions
11 11 * and limitations under the License.
12 12 *
13 13 * When distributing Covered Code, include this CDDL HEADER in each
↓ open down ↓ |
13 lines elided |
↑ open up ↑ |
14 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 15 * If applicable, add the following below this CDDL HEADER, with the
16 16 * fields enclosed by brackets "[]" replaced with your own identifying
17 17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 18 *
19 19 * CDDL HEADER END
20 20 */
21 21 /*
22 22 * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
23 23 * Use is subject to license terms.
24 + *
25 + * Copyright 2013 Nexenta Systems, Inc. All rights reserved.
24 26 */
25 27
26 28 #ifndef _NETDFS_NDL_
27 29 #define _NETDFS_NDL_
28 30
29 31 /*
30 32 * NT Distributed File Service (NETDFS) RPC interface definition.
31 33 */
32 34
33 -#include "ndrtypes.ndl"
35 +#include <libmlrpc/ndrtypes.ndl>
34 36
35 37
36 38 #define NETDFS_ABSTRACT_UUID "4fc742e0-4a10-11cf-8273-00aa004ae673"
37 39 #define NETDFS_ABSTRACT_VERS 3
38 40
39 41 #define NETDFS_TRANSFER_UUID "8a885d04-1ceb-11c9-9fe8-08002b104860"
40 42 #define NETDFS_TRANSFER_VERS 2
41 43
42 44 #define NETDFS_OPNUM_GETVER 0x00
43 45 #define NETDFS_OPNUM_ADD 0x01
44 46 #define NETDFS_OPNUM_REMOVE 0x02
45 47 #define NETDFS_OPNUM_SETINFO 0x03
46 48 #define NETDFS_OPNUM_GETINFO 0x04
47 49 #define NETDFS_OPNUM_ENUM 0x05
48 50 #define NETDFS_OPNUM_MOVE 0x06
49 51 #define NETDFS_OPNUM_RENAME 0x07
50 52 #define NETDFS_OPNUM_ADDSTDROOT 0x0c
51 53 #define NETDFS_OPNUM_REMSTDROOT 0x0d
52 54 #define NETDFS_OPNUM_ENUMEX 0x15
53 55
54 56 #define DFS_MANAGER_VERSION_NT4 0x01
55 57 #define DFS_MANAGER_VERSION_W2K 0x02
56 58 #define DFS_MANAGER_VERSION_W2K3 0x04
57 59
58 60 struct netdfs_uuid {
59 61 DWORD data1;
60 62 WORD data2;
61 63 WORD data3;
62 64 BYTE data4[8];
63 65 };
64 66 typedef struct netdfs_uuid netdfs_uuid_t;
65 67
66 68 struct netdfs_storage_info {
67 69 DWORD state;
68 70 LPTSTR server;
69 71 LPTSTR share;
70 72 };
71 73 typedef struct netdfs_storage_info netdfs_storage_info_t;
72 74
73 75
74 76 struct netdfs_storage_info1 {
75 77 DWORD state;
76 78 LPTSTR server;
77 79 LPTSTR share;
78 80 DWORD p_class;
79 81 WORD p_rank;
80 82 WORD p_reserved;
81 83 };
82 84 typedef struct netdfs_storage_info1 netdfs_storage_info1_t;
83 85
84 86 struct netdfs_info1 {
85 87 LPTSTR entry_path;
86 88 };
87 89 typedef struct netdfs_info1 netdfs_info1_t;
88 90
89 91 struct netdfs_info2 {
90 92 LPTSTR entry_path;
91 93 LPTSTR comment;
92 94 DWORD state;
93 95 DWORD n_store;
94 96 };
95 97 typedef struct netdfs_info2 netdfs_info2_t;
96 98
97 99 struct netdfs_info3 {
98 100 LPTSTR entry_path;
99 101 LPTSTR comment;
100 102 DWORD state;
101 103 DWORD n_store;
102 104 SIZE_IS(n_store)
103 105 struct netdfs_storage_info *si;
104 106 };
105 107 typedef struct netdfs_info3 netdfs_info3_t;
106 108
107 109 struct netdfs_info4 {
108 110 LPTSTR entry_path;
109 111 LPTSTR comment;
110 112 DWORD state;
111 113 DWORD timeout;
112 114 netdfs_uuid_t guid;
113 115 DWORD n_store;
114 116 SIZE_IS(n_store)
115 117 struct netdfs_storage_info *si;
116 118 };
117 119 typedef struct netdfs_info4 netdfs_info4_t;
118 120
119 121 struct netdfs_info5 {
120 122 LPTSTR entry_path;
121 123 LPTSTR comment;
122 124 DWORD state;
123 125 DWORD timeout;
124 126 netdfs_uuid_t guid;
125 127 DWORD flags;
126 128 DWORD metadata_sz;
127 129 DWORD n_store;
128 130 };
129 131 typedef struct netdfs_info5 netdfs_info5_t;
130 132
131 133 struct netdfs_info6 {
132 134 LPTSTR entry_path;
133 135 LPTSTR comment;
134 136 DWORD state;
135 137 DWORD timeout;
136 138 netdfs_uuid_t guid;
137 139 DWORD flags;
138 140 DWORD metadata_sz;
139 141 DWORD n_store;
140 142 SIZE_IS(n_store)
141 143 struct netdfs_storage_info1 *si;
142 144 };
143 145 typedef struct netdfs_info6 netdfs_info6_t;
144 146
145 147 struct netdfs_info100 {
146 148 LPTSTR comment;
147 149 };
148 150 typedef struct netdfs_info100 netdfs_info100_t;
149 151
150 152 struct netdfs_info101 {
151 153 DWORD state;
152 154 };
153 155 typedef struct netdfs_info101 netdfs_info101_t;
154 156
155 157
156 158 struct netdfs_info102 {
157 159 DWORD timeout;
158 160 };
159 161 typedef struct netdfs_info102 netdfs_info102_t;
160 162
161 163
162 164 struct netdfs_info103 {
163 165 DWORD property_flag_mask;
164 166 DWORD property_flags;
165 167 };
166 168 typedef struct netdfs_info103 netdfs_info103_t;
167 169
168 170
169 171 struct netdfs_info104 {
170 172 DWORD priority_class;
171 173 WORD priority_rank;
172 174 WORD reserved;
173 175 };
174 176 typedef struct netdfs_info104 netdfs_info104_t;
175 177
176 178
177 179 struct netdfs_info105 {
178 180 LPTSTR comment;
179 181 DWORD state;
180 182 DWORD timeout;
181 183 DWORD property_flag_mask;
182 184 DWORD property_flags;
183 185 };
184 186 typedef struct netdfs_info105 netdfs_info105_t;
185 187
186 188
187 189 struct netdfs_info106 {
188 190 DWORD storage_state;
189 191 DWORD priority_class;
190 192 DWORD priority_rank;
191 193 };
192 194
193 195
194 196 struct netdfs_info200 {
195 197 LPTSTR entry_path;
196 198 };
197 199
198 200
199 201 struct netdfs_info300 {
200 202 DWORD flavor;
201 203 LPTSTR dfsname;
202 204 };
203 205 typedef struct netdfs_info300 netdfs_info300_t;
204 206
205 207
206 208 union netdfs_info_u {
207 209 CASE(1) struct netdfs_info1 *info1;
208 210 CASE(2) struct netdfs_info2 *info2;
209 211 CASE(3) struct netdfs_info3 *info3;
210 212 CASE(4) struct netdfs_info4 *info4;
211 213 CASE(5) struct netdfs_info5 *info5;
212 214 CASE(6) struct netdfs_info6 *info6;
213 215 CASE(100) struct netdfs_info100 *info100;
214 216 CASE(101) struct netdfs_info101 *info101;
215 217 CASE(102) struct netdfs_info102 *info102;
216 218 CASE(103) struct netdfs_info103 *info103;
217 219 CASE(104) struct netdfs_info104 *info104;
218 220 CASE(105) struct netdfs_info105 *info105;
219 221 CASE(106) struct netdfs_info106 *info106;
220 222 DEFAULT char *nullptr;
221 223 };
222 224
223 225
224 226 struct netdfs_info {
225 227 DWORD level;
226 228 SWITCH(level)
227 229 union netdfs_info_u iu;
228 230 };
229 231 typedef struct netdfs_info netdfs_info_t;
230 232
231 233
232 234 struct netdfs_array1 {
233 235 DWORD count;
234 236 SIZE_IS(count)
235 237 struct netdfs_info1 *info1;
236 238 };
237 239
238 240 struct netdfs_array2 {
239 241 DWORD count;
240 242 SIZE_IS(count)
241 243 struct netdfs_info2 *info2;
242 244 };
243 245
244 246 struct netdfs_array3 {
245 247 DWORD count;
246 248 SIZE_IS(count)
247 249 struct netdfs_info3 *info3;
248 250 };
249 251
250 252 struct netdfs_array4 {
251 253 DWORD count;
252 254 SIZE_IS(count)
253 255 struct netdfs_info4 *info4;
254 256 };
255 257
256 258 struct netdfs_array5 {
257 259 DWORD count;
258 260 SIZE_IS(count)
259 261 struct netdfs_info5 *info5;
260 262 };
261 263
262 264 struct netdfs_array6 {
263 265 DWORD count;
264 266 SIZE_IS(count)
265 267 struct netdfs_info6 *info6;
266 268 };
267 269
268 270 struct netdfs_array200 {
269 271 DWORD count;
270 272 SIZE_IS(count)
271 273 struct netdfs_info200 *info200;
272 274 };
273 275
274 276 struct netdfs_array300 {
275 277 DWORD count;
276 278 SIZE_IS(count)
277 279 struct netdfs_info300 *info300;
278 280 };
279 281
280 282 union netdfs_enum_info_u {
281 283 CASE(1) struct netdfs_array1 *info1;
282 284 CASE(2) struct netdfs_array2 *info2;
283 285 CASE(3) struct netdfs_array3 *info3;
284 286 CASE(4) struct netdfs_array4 *info4;
285 287 CASE(5) struct netdfs_array5 *info5;
286 288 CASE(6) struct netdfs_array6 *info6;
287 289 CASE(200) struct netdfs_array200 *info200;
288 290 CASE(300) struct netdfs_array300 *info300;
289 291 DEFAULT char *nullptr;
290 292 };
291 293
292 294
293 295 struct netdfs_enum_info {
294 296 DWORD level;
295 297 DWORD switch_value;
296 298 SWITCH(switch_value)
297 299 union netdfs_enum_info_u iu;
298 300 };
299 301
300 302
301 303 /*
302 304 ***********************************************************************
303 305 * Return server version id
304 306 ***********************************************************************
305 307 */
306 308 OPERATION(NETDFS_OPNUM_GETVER)
307 309 struct netdfs_getver {
308 310 OUT DWORD version;
309 311 };
310 312
311 313
312 314 /*
313 315 ***********************************************************************
314 316 * Add a new volume or additional storage for an existing volume at
315 317 * dfs_path.
316 318 ***********************************************************************
317 319 */
318 320 OPERATION(NETDFS_OPNUM_ADD)
319 321 struct netdfs_add {
320 322 IN REFERENCE LPTSTR dfs_path;
321 323 IN REFERENCE LPTSTR server;
322 324 IN LPTSTR share;
323 325 IN LPTSTR comment;
324 326 IN DWORD flags;
325 327 OUT DWORD status;
326 328 };
327 329 typedef struct netdfs_add netdfs_add_t;
328 330
329 331
330 332 /*
331 333 ***********************************************************************
332 334 * Remove a volume or additional storage for volume from the DFS at
333 335 * dfs_path. When applied to the last storage in a volume, removes
334 336 * the volume from the DFS.
335 337 ***********************************************************************
336 338 */
337 339 OPERATION(NETDFS_OPNUM_REMOVE)
338 340 struct netdfs_remove {
339 341 IN REFERENCE LPTSTR dfs_path;
340 342 IN LPTSTR server;
341 343 IN LPTSTR share;
342 344 OUT DWORD status;
343 345 };
344 346
345 347
346 348 /*
347 349 ***********************************************************************
348 350 * Set information about the volume or storage. If the server and share
349 351 * are specified, the information set is specific to that server and
350 352 * share. Otherwise the information is specific to the volume as a whole.
351 353 *
352 354 * Valid levels are 100-102.
353 355 ***********************************************************************
354 356 */
355 357 OPERATION(NETDFS_OPNUM_SETINFO)
356 358 struct netdfs_setinfo {
357 359 IN REFERENCE LPTSTR dfs_path;
358 360 IN LPTSTR server;
359 361 IN LPTSTR share;
360 362 IN DWORD level;
361 363 IN struct netdfs_info info;
362 364 OUT DWORD status;
363 365 };
364 366 typedef struct netdfs_setinfo netdfs_setinfo_t;
365 367
366 368
367 369 /*
368 370 ***********************************************************************
369 371 * Get information about the volume or storage. If the server and share
370 372 * are specified, the information returned is specific to that server
371 373 * and share. Otherwise the information is specific to the volume as a
372 374 * whole.
373 375 *
374 376 * Valid levels are 1-4, 100-102.
375 377 ***********************************************************************
376 378 */
377 379 OPERATION(NETDFS_OPNUM_GETINFO)
378 380 struct netdfs_getinfo {
379 381 IN REFERENCE LPTSTR dfs_path;
380 382 IN LPTSTR server;
381 383 IN LPTSTR share;
382 384 IN DWORD level;
383 385 OUT struct netdfs_info info;
384 386 OUT DWORD status;
385 387 };
386 388 typedef struct netdfs_getinfo netdfs_getinfo_t;
387 389
388 390
389 391 /*
390 392 ***********************************************************************
391 393 * Get information about all of the volumes in the DFS. dfs_path is
392 394 * the "server" part of the UNC name used to refer to this particular
393 395 * DFS.
394 396 *
395 397 * Valid levels are 1-3.
396 398 ***********************************************************************
397 399 */
398 400 OPERATION(NETDFS_OPNUM_ENUM)
399 401 struct netdfs_enum {
400 402 IN DWORD level;
401 403 IN DWORD pref_max_len;
402 404 INOUT struct netdfs_enum_info *info;
403 405 INOUT DWORD *resume_handle;
404 406 OUT DWORD status;
405 407 };
406 408 typedef struct netdfs_enum netdfs_enum_t;
407 409
408 410
409 411 /*
410 412 ***********************************************************************
411 413 * Rename the current Win32 path in a DFS to a new Win32 path in the
412 414 * same DFS.
413 415 ***********************************************************************
414 416 */
415 417 OPERATION(NETDFS_OPNUM_RENAME)
416 418 struct netdfs_rename {
417 419 IN REFERENCE LPTSTR dfs_path;
418 420 IN REFERENCE LPTSTR new_path;
419 421 OUT DWORD status;
420 422 };
421 423
422 424
423 425 /*
424 426 ***********************************************************************
425 427 * Move a DFS volume and all subordinate volumes from one place in the
426 428 * DFS to another place in the DFS.
427 429 ***********************************************************************
428 430 */
429 431 OPERATION(NETDFS_OPNUM_MOVE)
430 432 struct netdfs_move {
431 433 IN REFERENCE LPTSTR dfs_path;
432 434 IN REFERENCE LPTSTR new_path;
433 435 IN DWORD flags;
434 436 OUT DWORD status;
435 437 };
436 438
437 439
438 440 /*
439 441 ***********************************************************************
440 442 * Add a DFS root share.
441 443 ***********************************************************************
442 444 */
443 445 OPERATION(NETDFS_OPNUM_ADDSTDROOT)
444 446 struct netdfs_addstdroot {
445 447 IN REFERENCE LPTSTR server;
446 448 IN REFERENCE LPTSTR share;
447 449 IN REFERENCE LPTSTR comment;
448 450 IN DWORD flags;
449 451 OUT DWORD status;
450 452 };
451 453
452 454 /*
453 455 ***********************************************************************
454 456 * Remove a DFS root share.
455 457 ***********************************************************************
456 458 */
457 459 OPERATION(NETDFS_OPNUM_REMSTDROOT)
458 460 struct netdfs_remstdroot {
459 461 IN REFERENCE LPTSTR server;
460 462 IN REFERENCE LPTSTR share;
461 463 IN DWORD flags;
462 464 OUT DWORD status;
463 465 };
464 466
465 467
466 468 /*
467 469 ***********************************************************************
468 470 * Get information about all of the volumes in the DFS. dfs_path is
469 471 * the "server" part of the UNC name used to refer to this particular
470 472 * DFS.
471 473 *
472 474 * Valid levels are 1-3.
473 475 ***********************************************************************
474 476 */
475 477 OPERATION(NETDFS_OPNUM_ENUMEX)
476 478 struct netdfs_enumex {
477 479 IN REFERENCE LPTSTR dfs_path;
478 480 IN DWORD level;
479 481 IN DWORD pref_max_len;
480 482 INOUT struct netdfs_enum_info *info;
481 483 INOUT DWORD *resume_handle;
482 484 OUT DWORD status;
483 485 };
484 486
485 487
486 488 /*
487 489 ***********************************************************************
488 490 * The NETDFS interface definiton.
489 491 ***********************************************************************
490 492 */
491 493 INTERFACE(0)
492 494 union netdfs_interface {
493 495 CASE(NETDFS_OPNUM_GETVER)
494 496 struct netdfs_getver netdfs_getver;
495 497 CASE(NETDFS_OPNUM_ADD)
496 498 struct netdfs_add netdfs_add;
497 499 CASE(NETDFS_OPNUM_REMOVE)
498 500 struct netdfs_remove netdfs_remove;
499 501 CASE(NETDFS_OPNUM_SETINFO)
500 502 struct netdfs_setinfo netdfs_setinfo;
501 503 CASE(NETDFS_OPNUM_GETINFO)
502 504 struct netdfs_getinfo netdfs_getinfo;
503 505 CASE(NETDFS_OPNUM_ENUM)
504 506 struct netdfs_enum netdfs_enum;
505 507 CASE(NETDFS_OPNUM_MOVE)
506 508 struct netdfs_move netdfs_move;
507 509 CASE(NETDFS_OPNUM_RENAME)
508 510 struct netdfs_rename netdfs_rename;
509 511 CASE(NETDFS_OPNUM_ADDSTDROOT)
510 512 struct netdfs_addstdroot netdfs_addstdroot;
511 513 CASE(NETDFS_OPNUM_REMSTDROOT)
512 514 struct netdfs_remstdroot netdfs_remstdroot;
513 515 CASE(NETDFS_OPNUM_ENUMEX)
514 516 struct netdfs_enumex netdfs_enumex;
515 517 };
516 518 typedef union netdfs_interface netdfs_interface_t;
517 519 EXTERNTYPEINFO(netdfs_interface)
518 520
519 521
520 522 #endif /* _NETDFS_NDL_ */
↓ open down ↓ |
477 lines elided |
↑ open up ↑ |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX