1 /*
2  * Please do not edit this file.
3  * It was generated using rpcgen.
4  */
5 
6 #ifndef _NFS4_PROT_H_RPCGEN
7 #define	_NFS4_PROT_H_RPCGEN
8 
9 #include <rpc/rpc.h>
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
15 #define	NFS4_FHSIZE 128
16 #define	NFS4_VERIFIER_SIZE 8
17 #define	NFS4_OTHER_SIZE 12
18 #define	NFS4_OPAQUE_LIMIT 1024
19 #define	NFS4_INT64_MAX 0x7fffffffffffffff
20 #define	NFS4_UINT64_MAX 0xffffffffffffffff
21 #define	NFS4_INT32_MAX 0x7fffffff
22 #define	NFS4_UINT32_MAX 0xffffffff
23 
24 enum nfs_ftype4 {
25 	NF4REG = 1,
26 	NF4DIR = 2,
27 	NF4BLK = 3,
28 	NF4CHR = 4,
29 	NF4LNK = 5,
30 	NF4SOCK = 6,
31 	NF4FIFO = 7,
32 	NF4ATTRDIR = 8,
33 	NF4NAMEDATTR = 9
34 };
35 typedef enum nfs_ftype4 nfs_ftype4;
36 
37 enum nfsstat4 {
38 	NFS4_OK = 0,
39 	NFS4ERR_PERM = 1,
40 	NFS4ERR_NOENT = 2,
41 	NFS4ERR_IO = 5,
42 	NFS4ERR_NXIO = 6,
43 	NFS4ERR_ACCESS = 13,
44 	NFS4ERR_EXIST = 17,
45 	NFS4ERR_XDEV = 18,
46 	NFS4ERR_NOTDIR = 20,
47 	NFS4ERR_ISDIR = 21,
48 	NFS4ERR_INVAL = 22,
49 	NFS4ERR_FBIG = 27,
50 	NFS4ERR_NOSPC = 28,
51 	NFS4ERR_ROFS = 30,
52 	NFS4ERR_MLINK = 31,
53 	NFS4ERR_NAMETOOLONG = 63,
54 	NFS4ERR_NOTEMPTY = 66,
55 	NFS4ERR_DQUOT = 69,
56 	NFS4ERR_STALE = 70,
57 	NFS4ERR_BADHANDLE = 10001,
58 	NFS4ERR_BAD_COOKIE = 10003,
59 	NFS4ERR_NOTSUPP = 10004,
60 	NFS4ERR_TOOSMALL = 10005,
61 	NFS4ERR_SERVERFAULT = 10006,
62 	NFS4ERR_BADTYPE = 10007,
63 	NFS4ERR_DELAY = 10008,
64 	NFS4ERR_SAME = 10009,
65 	NFS4ERR_DENIED = 10010,
66 	NFS4ERR_EXPIRED = 10011,
67 	NFS4ERR_LOCKED = 10012,
68 	NFS4ERR_GRACE = 10013,
69 	NFS4ERR_FHEXPIRED = 10014,
70 	NFS4ERR_SHARE_DENIED = 10015,
71 	NFS4ERR_WRONGSEC = 10016,
72 	NFS4ERR_CLID_INUSE = 10017,
73 	NFS4ERR_RESOURCE = 10018,
74 	NFS4ERR_MOVED = 10019,
75 	NFS4ERR_NOFILEHANDLE = 10020,
76 	NFS4ERR_MINOR_VERS_MISMATCH = 10021,
77 	NFS4ERR_STALE_CLIENTID = 10022,
78 	NFS4ERR_STALE_STATEID = 10023,
79 	NFS4ERR_OLD_STATEID = 10024,
80 	NFS4ERR_BAD_STATEID = 10025,
81 	NFS4ERR_BAD_SEQID = 10026,
82 	NFS4ERR_NOT_SAME = 10027,
83 	NFS4ERR_LOCK_RANGE = 10028,
84 	NFS4ERR_SYMLINK = 10029,
85 	NFS4ERR_RESTOREFH = 10030,
86 	NFS4ERR_LEASE_MOVED = 10031,
87 	NFS4ERR_ATTRNOTSUPP = 10032,
88 	NFS4ERR_NO_GRACE = 10033,
89 	NFS4ERR_RECLAIM_BAD = 10034,
90 	NFS4ERR_RECLAIM_CONFLICT = 10035,
91 	NFS4ERR_BADXDR = 10036,
92 	NFS4ERR_LOCKS_HELD = 10037,
93 	NFS4ERR_OPENMODE = 10038,
94 	NFS4ERR_BADOWNER = 10039,
95 	NFS4ERR_BADCHAR = 10040,
96 	NFS4ERR_BADNAME = 10041,
97 	NFS4ERR_BAD_RANGE = 10042,
98 	NFS4ERR_LOCK_NOTSUPP = 10043,
99 	NFS4ERR_OP_ILLEGAL = 10044,
100 	NFS4ERR_DEADLOCK = 10045,
101 	NFS4ERR_FILE_OPEN = 10046,
102 	NFS4ERR_ADMIN_REVOKED = 10047,
103 	NFS4ERR_CB_PATH_DOWN = 10048
104 };
105 typedef enum nfsstat4 nfsstat4;
106 
107 typedef struct {
108 	u_int attrlist4_len;
109 	char *attrlist4_val;
110 } attrlist4;
111 
112 typedef struct {
113 	u_int bitmap4_len;
114 	uint32_t *bitmap4_val;
115 } bitmap4;
116 
117 typedef uint64_t changeid4;
118 
119 typedef uint64_t clientid4;
120 
121 typedef uint32_t count4;
122 
123 typedef uint64_t length4;
124 
125 typedef uint32_t mode4;
126 
127 typedef uint64_t nfs_cookie4;
128 
129 typedef struct {
130 	u_int nfs_fh4_len;
131 	char *nfs_fh4_val;
132 } nfs_fh4;
133 
134 typedef uint32_t nfs_lease4;
135 
136 typedef uint64_t offset4;
137 
138 typedef uint32_t qop4;
139 
140 typedef struct {
141 	u_int sec_oid4_len;
142 	char *sec_oid4_val;
143 } sec_oid4;
144 
145 typedef uint32_t seqid4;
146 
147 typedef struct {
148 	u_int utf8string_len;
149 	char *utf8string_val;
150 } utf8string;
151 
152 typedef utf8string utf8str_cis;
153 
154 typedef utf8string utf8str_cs;
155 
156 typedef utf8string utf8str_mixed;
157 
158 typedef utf8str_cs component4;
159 
160 typedef struct {
161 	u_int linktext4_len;
162 	char *linktext4_val;
163 } linktext4;
164 
165 typedef utf8string ascii_REQUIRED4;
166 
167 typedef struct {
168 	u_int pathname4_len;
169 	component4 *pathname4_val;
170 } pathname4;
171 
172 typedef uint64_t nfs_lockid4;
173 
174 typedef char verifier4[NFS4_VERIFIER_SIZE];
175 
176 struct nfstime4 {
177 	int64_t seconds;
178 	uint32_t nseconds;
179 };
180 typedef struct nfstime4 nfstime4;
181 
182 enum time_how4 {
183 	SET_TO_SERVER_TIME4 = 0,
184 	SET_TO_CLIENT_TIME4 = 1
185 };
186 typedef enum time_how4 time_how4;
187 
188 struct settime4 {
189 	time_how4 set_it;
190 	union {
191 		nfstime4 time;
192 	} settime4_u;
193 };
194 typedef struct settime4 settime4;
195 
196 struct fsid4 {
197 	uint64_t major;
198 	uint64_t minor;
199 };
200 typedef struct fsid4 fsid4;
201 
202 struct fs_location4 {
203 	struct {
204 		u_int server_len;
205 		utf8str_cis *server_val;
206 	} server;
207 	pathname4 rootpath;
208 };
209 typedef struct fs_location4 fs_location4;
210 
211 struct fs_locations4 {
212 	pathname4 fs_root;
213 	struct {
214 		u_int locations_len;
215 		fs_location4 *locations_val;
216 	} locations;
217 };
218 typedef struct fs_locations4 fs_locations4;
219 #define	ACL4_SUPPORT_ALLOW_ACL 0x00000001
220 #define	ACL4_SUPPORT_DENY_ACL 0x00000002
221 #define	ACL4_SUPPORT_AUDIT_ACL 0x00000004
222 #define	ACL4_SUPPORT_ALARM_ACL 0x00000008
223 
224 typedef uint32_t acetype4;
225 #define	ACE4_ACCESS_ALLOWED_ACE_TYPE 0x00000000
226 #define	ACE4_ACCESS_DENIED_ACE_TYPE 0x00000001
227 #define	ACE4_SYSTEM_AUDIT_ACE_TYPE 0x00000002
228 #define	ACE4_SYSTEM_ALARM_ACE_TYPE 0x00000003
229 
230 typedef uint32_t aceflag4;
231 #define	ACE4_FILE_INHERIT_ACE 0x00000001
232 #define	ACE4_DIRECTORY_INHERIT_ACE 0x00000002
233 #define	ACE4_NO_PROPAGATE_INHERIT_ACE 0x00000004
234 #define	ACE4_INHERIT_ONLY_ACE 0x00000008
235 #define	ACE4_SUCCESSFUL_ACCESS_ACE_FLAG 0x00000010
236 #define	ACE4_FAILED_ACCESS_ACE_FLAG 0x00000020
237 #define	ACE4_IDENTIFIER_GROUP 0x00000040
238 
239 typedef uint32_t acemask4;
240 #define	ACE4_READ_DATA 0x00000001
241 #define	ACE4_LIST_DIRECTORY 0x00000001
242 #define	ACE4_WRITE_DATA 0x00000002
243 #define	ACE4_ADD_FILE 0x00000002
244 #define	ACE4_APPEND_DATA 0x00000004
245 #define	ACE4_ADD_SUBDIRECTORY 0x00000004
246 #define	ACE4_READ_NAMED_ATTRS 0x00000008
247 #define	ACE4_WRITE_NAMED_ATTRS 0x00000010
248 #define	ACE4_EXECUTE 0x00000020
249 #define	ACE4_DELETE_CHILD 0x00000040
250 #define	ACE4_READ_ATTRIBUTES 0x00000080
251 #define	ACE4_WRITE_ATTRIBUTES 0x00000100
252 #define	ACE4_DELETE 0x00010000
253 #define	ACE4_READ_ACL 0x00020000
254 #define	ACE4_WRITE_ACL 0x00040000
255 #define	ACE4_WRITE_OWNER 0x00080000
256 #define	ACE4_SYNCHRONIZE 0x00100000
257 #define	ACE4_GENERIC_READ 0x00120081
258 #define	ACE4_GENERIC_WRITE 0x00160106
259 #define	ACE4_GENERIC_EXECUTE 0x001200A0
260 
261 struct nfsace4 {
262 	acetype4 type;
263 	aceflag4 flag;
264 	acemask4 access_mask;
265 	utf8str_mixed who;
266 };
267 typedef struct nfsace4 nfsace4;
268 #define	MODE4_SUID 0x800
269 #define	MODE4_SGID 0x400
270 #define	MODE4_SVTX 0x200
271 #define	MODE4_RUSR 0x100
272 #define	MODE4_WUSR 0x080
273 #define	MODE4_XUSR 0x040
274 #define	MODE4_RGRP 0x020
275 #define	MODE4_WGRP 0x010
276 #define	MODE4_XGRP 0x008
277 #define	MODE4_ROTH 0x004
278 #define	MODE4_WOTH 0x002
279 #define	MODE4_XOTH 0x001
280 
281 struct specdata4 {
282 	uint32_t specdata1;
283 	uint32_t specdata2;
284 };
285 typedef struct specdata4 specdata4;
286 #define	FH4_PERSISTENT 0x00000000
287 #define	FH4_NOEXPIRE_WITH_OPEN 0x00000001
288 #define	FH4_VOLATILE_ANY 0x00000002
289 #define	FH4_VOL_MIGRATION 0x00000004
290 #define	FH4_VOL_RENAME 0x00000008
291 
292 typedef bitmap4 fattr4_supported_attrs;
293 
294 typedef nfs_ftype4 fattr4_type;
295 
296 typedef uint32_t fattr4_fh_expire_type;
297 
298 typedef changeid4 fattr4_change;
299 
300 typedef uint64_t fattr4_size;
301 
302 typedef bool_t fattr4_link_support;
303 
304 typedef bool_t fattr4_symlink_support;
305 
306 typedef bool_t fattr4_named_attr;
307 
308 typedef fsid4 fattr4_fsid;
309 
310 typedef bool_t fattr4_unique_handles;
311 
312 typedef nfs_lease4 fattr4_lease_time;
313 
314 typedef nfsstat4 fattr4_rdattr_error;
315 
316 typedef struct {
317 	u_int fattr4_acl_len;
318 	nfsace4 *fattr4_acl_val;
319 } fattr4_acl;
320 
321 typedef uint32_t fattr4_aclsupport;
322 
323 typedef bool_t fattr4_archive;
324 
325 typedef bool_t fattr4_cansettime;
326 
327 typedef bool_t fattr4_case_insensitive;
328 
329 typedef bool_t fattr4_case_preserving;
330 
331 typedef bool_t fattr4_chown_restricted;
332 
333 typedef uint64_t fattr4_fileid;
334 
335 typedef uint64_t fattr4_files_avail;
336 
337 typedef nfs_fh4 fattr4_filehandle;
338 
339 typedef uint64_t fattr4_files_free;
340 
341 typedef uint64_t fattr4_files_total;
342 
343 typedef fs_locations4 fattr4_fs_locations;
344 
345 typedef bool_t fattr4_hidden;
346 
347 typedef bool_t fattr4_homogeneous;
348 
349 typedef uint64_t fattr4_maxfilesize;
350 
351 typedef uint32_t fattr4_maxlink;
352 
353 typedef uint32_t fattr4_maxname;
354 
355 typedef uint64_t fattr4_maxread;
356 
357 typedef uint64_t fattr4_maxwrite;
358 
359 typedef ascii_REQUIRED4 fattr4_mimetype;
360 
361 typedef mode4 fattr4_mode;
362 
363 typedef uint64_t fattr4_mounted_on_fileid;
364 
365 typedef bool_t fattr4_no_trunc;
366 
367 typedef uint32_t fattr4_numlinks;
368 
369 typedef utf8str_mixed fattr4_owner;
370 
371 typedef utf8str_mixed fattr4_owner_group;
372 
373 typedef uint64_t fattr4_quota_avail_hard;
374 
375 typedef uint64_t fattr4_quota_avail_soft;
376 
377 typedef uint64_t fattr4_quota_used;
378 
379 typedef specdata4 fattr4_rawdev;
380 
381 typedef uint64_t fattr4_space_avail;
382 
383 typedef uint64_t fattr4_space_free;
384 
385 typedef uint64_t fattr4_space_total;
386 
387 typedef uint64_t fattr4_space_used;
388 
389 typedef bool_t fattr4_system;
390 
391 typedef nfstime4 fattr4_time_access;
392 
393 typedef settime4 fattr4_time_access_set;
394 
395 typedef nfstime4 fattr4_time_backup;
396 
397 typedef nfstime4 fattr4_time_create;
398 
399 typedef nfstime4 fattr4_time_delta;
400 
401 typedef nfstime4 fattr4_time_metadata;
402 
403 typedef nfstime4 fattr4_time_modify;
404 
405 typedef settime4 fattr4_time_modify_set;
406 #define	FATTR4_SUPPORTED_ATTRS 0
407 #define	FATTR4_TYPE 1
408 #define	FATTR4_FH_EXPIRE_TYPE 2
409 #define	FATTR4_CHANGE 3
410 #define	FATTR4_SIZE 4
411 #define	FATTR4_LINK_SUPPORT 5
412 #define	FATTR4_SYMLINK_SUPPORT 6
413 #define	FATTR4_NAMED_ATTR 7
414 #define	FATTR4_FSID 8
415 #define	FATTR4_UNIQUE_HANDLES 9
416 #define	FATTR4_LEASE_TIME 10
417 #define	FATTR4_RDATTR_ERROR 11
418 #define	FATTR4_FILEHANDLE 19
419 #define	FATTR4_ACL 12
420 #define	FATTR4_ACLSUPPORT 13
421 #define	FATTR4_ARCHIVE 14
422 #define	FATTR4_CANSETTIME 15
423 #define	FATTR4_CASE_INSENSITIVE 16
424 #define	FATTR4_CASE_PRESERVING 17
425 #define	FATTR4_CHOWN_RESTRICTED 18
426 #define	FATTR4_FILEID 20
427 #define	FATTR4_FILES_AVAIL 21
428 #define	FATTR4_FILES_FREE 22
429 #define	FATTR4_FILES_TOTAL 23
430 #define	FATTR4_FS_LOCATIONS 24
431 #define	FATTR4_HIDDEN 25
432 #define	FATTR4_HOMOGENEOUS 26
433 #define	FATTR4_MAXFILESIZE 27
434 #define	FATTR4_MAXLINK 28
435 #define	FATTR4_MAXNAME 29
436 #define	FATTR4_MAXREAD 30
437 #define	FATTR4_MAXWRITE 31
438 #define	FATTR4_MIMETYPE 32
439 #define	FATTR4_MODE 33
440 #define	FATTR4_NO_TRUNC 34
441 #define	FATTR4_NUMLINKS 35
442 #define	FATTR4_OWNER 36
443 #define	FATTR4_OWNER_GROUP 37
444 #define	FATTR4_QUOTA_AVAIL_HARD 38
445 #define	FATTR4_QUOTA_AVAIL_SOFT 39
446 #define	FATTR4_QUOTA_USED 40
447 #define	FATTR4_RAWDEV 41
448 #define	FATTR4_SPACE_AVAIL 42
449 #define	FATTR4_SPACE_FREE 43
450 #define	FATTR4_SPACE_TOTAL 44
451 #define	FATTR4_SPACE_USED 45
452 #define	FATTR4_SYSTEM 46
453 #define	FATTR4_TIME_ACCESS 47
454 #define	FATTR4_TIME_ACCESS_SET 48
455 #define	FATTR4_TIME_BACKUP 49
456 #define	FATTR4_TIME_CREATE 50
457 #define	FATTR4_TIME_DELTA 51
458 #define	FATTR4_TIME_METADATA 52
459 #define	FATTR4_TIME_MODIFY 53
460 #define	FATTR4_TIME_MODIFY_SET 54
461 #define	FATTR4_MOUNTED_ON_FILEID 55
462 
463 struct fattr4 {
464 	bitmap4 attrmask;
465 	attrlist4 attr_vals;
466 };
467 typedef struct fattr4 fattr4;
468 
469 struct change_info4 {
470 	bool_t atomic;
471 	changeid4 before;
472 	changeid4 after;
473 };
474 typedef struct change_info4 change_info4;
475 
476 struct clientaddr4 {
477 	char *r_netid;
478 	char *r_addr;
479 };
480 typedef struct clientaddr4 clientaddr4;
481 
482 struct cb_client4 {
483 	u_int cb_program;
484 	clientaddr4 cb_location;
485 };
486 typedef struct cb_client4 cb_client4;
487 
488 struct stateid4 {
489 	uint32_t seqid;
490 	char other[NFS4_OTHER_SIZE];
491 };
492 typedef struct stateid4 stateid4;
493 
494 struct nfs_client_id4 {
495 	verifier4 verifier;
496 	struct {
497 		u_int id_len;
498 		char *id_val;
499 	} id;
500 };
501 typedef struct nfs_client_id4 nfs_client_id4;
502 
503 struct open_owner4 {
504 	clientid4 clientid;
505 	struct {
506 		u_int owner_len;
507 		char *owner_val;
508 	} owner;
509 };
510 typedef struct open_owner4 open_owner4;
511 
512 struct lock_owner4 {
513 	clientid4 clientid;
514 	struct {
515 		u_int owner_len;
516 		char *owner_val;
517 	} owner;
518 };
519 typedef struct lock_owner4 lock_owner4;
520 
521 enum nfs_lock_type4 {
522 	READ_LT = 1,
523 	WRITE_LT = 2,
524 	READW_LT = 3,
525 	WRITEW_LT = 4
526 };
527 typedef enum nfs_lock_type4 nfs_lock_type4;
528 #define	ACCESS4_READ 0x00000001
529 #define	ACCESS4_LOOKUP 0x00000002
530 #define	ACCESS4_MODIFY 0x00000004
531 #define	ACCESS4_EXTEND 0x00000008
532 #define	ACCESS4_DELETE 0x00000010
533 #define	ACCESS4_EXECUTE 0x00000020
534 
535 struct ACCESS4args {
536 	uint32_t access;
537 };
538 typedef struct ACCESS4args ACCESS4args;
539 
540 struct ACCESS4resok {
541 	uint32_t supported;
542 	uint32_t access;
543 };
544 typedef struct ACCESS4resok ACCESS4resok;
545 
546 struct ACCESS4res {
547 	nfsstat4 status;
548 	union {
549 		ACCESS4resok resok4;
550 	} ACCESS4res_u;
551 };
552 typedef struct ACCESS4res ACCESS4res;
553 
554 struct CLOSE4args {
555 	seqid4 seqid;
556 	stateid4 open_stateid;
557 };
558 typedef struct CLOSE4args CLOSE4args;
559 
560 struct CLOSE4res {
561 	nfsstat4 status;
562 	union {
563 		stateid4 open_stateid;
564 	} CLOSE4res_u;
565 };
566 typedef struct CLOSE4res CLOSE4res;
567 
568 struct COMMIT4args {
569 	offset4 offset;
570 	count4 count;
571 };
572 typedef struct COMMIT4args COMMIT4args;
573 
574 struct COMMIT4resok {
575 	verifier4 writeverf;
576 };
577 typedef struct COMMIT4resok COMMIT4resok;
578 
579 struct COMMIT4res {
580 	nfsstat4 status;
581 	union {
582 		COMMIT4resok resok4;
583 	} COMMIT4res_u;
584 };
585 typedef struct COMMIT4res COMMIT4res;
586 
587 struct createtype4 {
588 	nfs_ftype4 type;
589 	union {
590 		linktext4 linkdata;
591 		specdata4 devdata;
592 	} createtype4_u;
593 };
594 typedef struct createtype4 createtype4;
595 
596 struct CREATE4args {
597 	createtype4 objtype;
598 	component4 objname;
599 	fattr4 createattrs;
600 };
601 typedef struct CREATE4args CREATE4args;
602 
603 struct CREATE4resok {
604 	change_info4 cinfo;
605 	bitmap4 attrset;
606 };
607 typedef struct CREATE4resok CREATE4resok;
608 
609 struct CREATE4res {
610 	nfsstat4 status;
611 	union {
612 		CREATE4resok resok4;
613 	} CREATE4res_u;
614 };
615 typedef struct CREATE4res CREATE4res;
616 
617 struct DELEGPURGE4args {
618 	clientid4 clientid;
619 };
620 typedef struct DELEGPURGE4args DELEGPURGE4args;
621 
622 struct DELEGPURGE4res {
623 	nfsstat4 status;
624 };
625 typedef struct DELEGPURGE4res DELEGPURGE4res;
626 
627 struct DELEGRETURN4args {
628 	stateid4 deleg_stateid;
629 };
630 typedef struct DELEGRETURN4args DELEGRETURN4args;
631 
632 struct DELEGRETURN4res {
633 	nfsstat4 status;
634 };
635 typedef struct DELEGRETURN4res DELEGRETURN4res;
636 
637 struct GETATTR4args {
638 	bitmap4 attr_request;
639 };
640 typedef struct GETATTR4args GETATTR4args;
641 
642 struct GETATTR4resok {
643 	fattr4 obj_attributes;
644 };
645 typedef struct GETATTR4resok GETATTR4resok;
646 
647 struct GETATTR4res {
648 	nfsstat4 status;
649 	union {
650 		GETATTR4resok resok4;
651 	} GETATTR4res_u;
652 };
653 typedef struct GETATTR4res GETATTR4res;
654 
655 struct GETFH4resok {
656 	nfs_fh4 object;
657 };
658 typedef struct GETFH4resok GETFH4resok;
659 
660 struct GETFH4res {
661 	nfsstat4 status;
662 	union {
663 		GETFH4resok resok4;
664 	} GETFH4res_u;
665 };
666 typedef struct GETFH4res GETFH4res;
667 
668 struct LINK4args {
669 	component4 newname;
670 };
671 typedef struct LINK4args LINK4args;
672 
673 struct LINK4resok {
674 	change_info4 cinfo;
675 };
676 typedef struct LINK4resok LINK4resok;
677 
678 struct LINK4res {
679 	nfsstat4 status;
680 	union {
681 		LINK4resok resok4;
682 	} LINK4res_u;
683 };
684 typedef struct LINK4res LINK4res;
685 
686 struct open_to_lock_owner4 {
687 	seqid4 open_seqid;
688 	stateid4 open_stateid;
689 	seqid4 lock_seqid;
690 	lock_owner4 lock_owner;
691 };
692 typedef struct open_to_lock_owner4 open_to_lock_owner4;
693 
694 struct exist_lock_owner4 {
695 	stateid4 lock_stateid;
696 	seqid4 lock_seqid;
697 };
698 typedef struct exist_lock_owner4 exist_lock_owner4;
699 
700 struct locker4 {
701 	bool_t new_lock_owner;
702 	union {
703 		open_to_lock_owner4 open_owner;
704 		exist_lock_owner4 lock_owner;
705 	} locker4_u;
706 };
707 typedef struct locker4 locker4;
708 
709 struct LOCK4args {
710 	nfs_lock_type4 locktype;
711 	bool_t reclaim;
712 	offset4 offset;
713 	length4 length;
714 	locker4 locker;
715 };
716 typedef struct LOCK4args LOCK4args;
717 
718 struct LOCK4denied {
719 	offset4 offset;
720 	length4 length;
721 	nfs_lock_type4 locktype;
722 	lock_owner4 owner;
723 };
724 typedef struct LOCK4denied LOCK4denied;
725 
726 struct LOCK4resok {
727 	stateid4 lock_stateid;
728 };
729 typedef struct LOCK4resok LOCK4resok;
730 
731 struct LOCK4res {
732 	nfsstat4 status;
733 	union {
734 		LOCK4resok resok4;
735 		LOCK4denied denied;
736 	} LOCK4res_u;
737 };
738 typedef struct LOCK4res LOCK4res;
739 
740 struct LOCKT4args {
741 	nfs_lock_type4 locktype;
742 	offset4 offset;
743 	length4 length;
744 	lock_owner4 owner;
745 };
746 typedef struct LOCKT4args LOCKT4args;
747 
748 struct LOCKT4res {
749 	nfsstat4 status;
750 	union {
751 		LOCK4denied denied;
752 	} LOCKT4res_u;
753 };
754 typedef struct LOCKT4res LOCKT4res;
755 
756 struct LOCKU4args {
757 	nfs_lock_type4 locktype;
758 	seqid4 seqid;
759 	stateid4 lock_stateid;
760 	offset4 offset;
761 	length4 length;
762 };
763 typedef struct LOCKU4args LOCKU4args;
764 
765 struct LOCKU4res {
766 	nfsstat4 status;
767 	union {
768 		stateid4 lock_stateid;
769 	} LOCKU4res_u;
770 };
771 typedef struct LOCKU4res LOCKU4res;
772 
773 struct LOOKUP4args {
774 	component4 objname;
775 };
776 typedef struct LOOKUP4args LOOKUP4args;
777 
778 struct LOOKUP4res {
779 	nfsstat4 status;
780 };
781 typedef struct LOOKUP4res LOOKUP4res;
782 
783 struct LOOKUPP4res {
784 	nfsstat4 status;
785 };
786 typedef struct LOOKUPP4res LOOKUPP4res;
787 
788 struct NVERIFY4args {
789 	fattr4 obj_attributes;
790 };
791 typedef struct NVERIFY4args NVERIFY4args;
792 
793 struct NVERIFY4res {
794 	nfsstat4 status;
795 };
796 typedef struct NVERIFY4res NVERIFY4res;
797 #define	OPEN4_SHARE_ACCESS_READ 0x00000001
798 #define	OPEN4_SHARE_ACCESS_WRITE 0x00000002
799 #define	OPEN4_SHARE_ACCESS_BOTH 0x00000003
800 #define	OPEN4_SHARE_DENY_NONE 0x00000000
801 #define	OPEN4_SHARE_DENY_READ 0x00000001
802 #define	OPEN4_SHARE_DENY_WRITE 0x00000002
803 #define	OPEN4_SHARE_DENY_BOTH 0x00000003
804 
805 enum createmode4 {
806 	UNCHECKED4 = 0,
807 	GUARDED4 = 1,
808 	EXCLUSIVE4 = 2
809 };
810 typedef enum createmode4 createmode4;
811 
812 struct createhow4 {
813 	createmode4 mode;
814 	union {
815 		fattr4 createattrs;
816 		verifier4 createverf;
817 	} createhow4_u;
818 };
819 typedef struct createhow4 createhow4;
820 
821 enum opentype4 {
822 	OPEN4_NOCREATE = 0,
823 	OPEN4_CREATE = 1
824 };
825 typedef enum opentype4 opentype4;
826 
827 struct openflag4 {
828 	opentype4 opentype;
829 	union {
830 		createhow4 how;
831 	} openflag4_u;
832 };
833 typedef struct openflag4 openflag4;
834 
835 enum limit_by4 {
836 	NFS_LIMIT_SIZE = 1,
837 	NFS_LIMIT_BLOCKS = 2
838 };
839 typedef enum limit_by4 limit_by4;
840 
841 struct nfs_modified_limit4 {
842 	uint32_t num_blocks;
843 	uint32_t bytes_per_block;
844 };
845 typedef struct nfs_modified_limit4 nfs_modified_limit4;
846 
847 struct nfs_space_limit4 {
848 	limit_by4 limitby;
849 	union {
850 		uint64_t filesize;
851 		nfs_modified_limit4 mod_blocks;
852 	} nfs_space_limit4_u;
853 };
854 typedef struct nfs_space_limit4 nfs_space_limit4;
855 
856 enum open_delegation_type4 {
857 	OPEN_DELEGATE_NONE = 0,
858 	OPEN_DELEGATE_READ = 1,
859 	OPEN_DELEGATE_WRITE = 2
860 };
861 typedef enum open_delegation_type4 open_delegation_type4;
862 
863 enum open_claim_type4 {
864 	CLAIM_NULL = 0,
865 	CLAIM_PREVIOUS = 1,
866 	CLAIM_DELEGATE_CUR = 2,
867 	CLAIM_DELEGATE_PREV = 3
868 };
869 typedef enum open_claim_type4 open_claim_type4;
870 
871 struct open_claim_delegate_cur4 {
872 	stateid4 delegate_stateid;
873 	component4 file;
874 };
875 typedef struct open_claim_delegate_cur4 open_claim_delegate_cur4;
876 
877 struct open_claim4 {
878 	open_claim_type4 claim;
879 	union {
880 		component4 file;
881 		open_delegation_type4 delegate_type;
882 		open_claim_delegate_cur4 delegate_cur_info;
883 		component4 file_delegate_prev;
884 	} open_claim4_u;
885 };
886 typedef struct open_claim4 open_claim4;
887 
888 struct OPEN4args {
889 	seqid4 seqid;
890 	uint32_t share_access;
891 	uint32_t share_deny;
892 	open_owner4 owner;
893 	openflag4 openhow;
894 	open_claim4 claim;
895 };
896 typedef struct OPEN4args OPEN4args;
897 
898 struct open_read_delegation4 {
899 	stateid4 stateid;
900 	bool_t recall;
901 	nfsace4 permissions;
902 };
903 typedef struct open_read_delegation4 open_read_delegation4;
904 
905 struct open_write_delegation4 {
906 	stateid4 stateid;
907 	bool_t recall;
908 	nfs_space_limit4 space_limit;
909 	nfsace4 permissions;
910 };
911 typedef struct open_write_delegation4 open_write_delegation4;
912 
913 struct open_delegation4 {
914 	open_delegation_type4 delegation_type;
915 	union {
916 		open_read_delegation4 read;
917 		open_write_delegation4 write;
918 	} open_delegation4_u;
919 };
920 typedef struct open_delegation4 open_delegation4;
921 #define	OPEN4_RESULT_CONFIRM 0x00000002
922 #define	OPEN4_RESULT_LOCKTYPE_POSIX 0x00000004
923 
924 struct OPEN4resok {
925 	stateid4 stateid;
926 	change_info4 cinfo;
927 	uint32_t rflags;
928 	bitmap4 attrset;
929 	open_delegation4 delegation;
930 };
931 typedef struct OPEN4resok OPEN4resok;
932 
933 struct OPEN4res {
934 	nfsstat4 status;
935 	union {
936 		OPEN4resok resok4;
937 	} OPEN4res_u;
938 };
939 typedef struct OPEN4res OPEN4res;
940 
941 struct OPENATTR4args {
942 	bool_t createdir;
943 };
944 typedef struct OPENATTR4args OPENATTR4args;
945 
946 struct OPENATTR4res {
947 	nfsstat4 status;
948 };
949 typedef struct OPENATTR4res OPENATTR4res;
950 
951 struct OPEN_CONFIRM4args {
952 	stateid4 open_stateid;
953 	seqid4 seqid;
954 };
955 typedef struct OPEN_CONFIRM4args OPEN_CONFIRM4args;
956 
957 struct OPEN_CONFIRM4resok {
958 	stateid4 open_stateid;
959 };
960 typedef struct OPEN_CONFIRM4resok OPEN_CONFIRM4resok;
961 
962 struct OPEN_CONFIRM4res {
963 	nfsstat4 status;
964 	union {
965 		OPEN_CONFIRM4resok resok4;
966 	} OPEN_CONFIRM4res_u;
967 };
968 typedef struct OPEN_CONFIRM4res OPEN_CONFIRM4res;
969 
970 struct OPEN_DOWNGRADE4args {
971 	stateid4 open_stateid;
972 	seqid4 seqid;
973 	uint32_t share_access;
974 	uint32_t share_deny;
975 };
976 typedef struct OPEN_DOWNGRADE4args OPEN_DOWNGRADE4args;
977 
978 struct OPEN_DOWNGRADE4resok {
979 	stateid4 open_stateid;
980 };
981 typedef struct OPEN_DOWNGRADE4resok OPEN_DOWNGRADE4resok;
982 
983 struct OPEN_DOWNGRADE4res {
984 	nfsstat4 status;
985 	union {
986 		OPEN_DOWNGRADE4resok resok4;
987 	} OPEN_DOWNGRADE4res_u;
988 };
989 typedef struct OPEN_DOWNGRADE4res OPEN_DOWNGRADE4res;
990 
991 struct PUTFH4args {
992 	nfs_fh4 object;
993 };
994 typedef struct PUTFH4args PUTFH4args;
995 
996 struct PUTFH4res {
997 	nfsstat4 status;
998 };
999 typedef struct PUTFH4res PUTFH4res;
1000 
1001 struct PUTPUBFH4res {
1002 	nfsstat4 status;
1003 };
1004 typedef struct PUTPUBFH4res PUTPUBFH4res;
1005 
1006 struct PUTROOTFH4res {
1007 	nfsstat4 status;
1008 };
1009 typedef struct PUTROOTFH4res PUTROOTFH4res;
1010 
1011 struct READ4args {
1012 	stateid4 stateid;
1013 	offset4 offset;
1014 	count4 count;
1015 };
1016 typedef struct READ4args READ4args;
1017 
1018 struct READ4resok {
1019 	bool_t eof;
1020 	struct {
1021 		u_int data_len;
1022 		char *data_val;
1023 	} data;
1024 };
1025 typedef struct READ4resok READ4resok;
1026 
1027 struct READ4res {
1028 	nfsstat4 status;
1029 	union {
1030 		READ4resok resok4;
1031 	} READ4res_u;
1032 };
1033 typedef struct READ4res READ4res;
1034 
1035 struct READDIR4args {
1036 	nfs_cookie4 cookie;
1037 	verifier4 cookieverf;
1038 	count4 dircount;
1039 	count4 maxcount;
1040 	bitmap4 attr_request;
1041 };
1042 typedef struct READDIR4args READDIR4args;
1043 
1044 struct entry4 {
1045 	nfs_cookie4 cookie;
1046 	component4 name;
1047 	fattr4 attrs;
1048 	struct entry4 *nextentry;
1049 };
1050 typedef struct entry4 entry4;
1051 
1052 struct dirlist4 {
1053 	entry4 *entries;
1054 	bool_t eof;
1055 };
1056 typedef struct dirlist4 dirlist4;
1057 
1058 struct READDIR4resok {
1059 	verifier4 cookieverf;
1060 	dirlist4 reply;
1061 };
1062 typedef struct READDIR4resok READDIR4resok;
1063 
1064 struct READDIR4res {
1065 	nfsstat4 status;
1066 	union {
1067 		READDIR4resok resok4;
1068 	} READDIR4res_u;
1069 };
1070 typedef struct READDIR4res READDIR4res;
1071 
1072 struct READLINK4resok {
1073 	linktext4 link;
1074 };
1075 typedef struct READLINK4resok READLINK4resok;
1076 
1077 struct READLINK4res {
1078 	nfsstat4 status;
1079 	union {
1080 		READLINK4resok resok4;
1081 	} READLINK4res_u;
1082 };
1083 typedef struct READLINK4res READLINK4res;
1084 
1085 struct REMOVE4args {
1086 	component4 target;
1087 };
1088 typedef struct REMOVE4args REMOVE4args;
1089 
1090 struct REMOVE4resok {
1091 	change_info4 cinfo;
1092 };
1093 typedef struct REMOVE4resok REMOVE4resok;
1094 
1095 struct REMOVE4res {
1096 	nfsstat4 status;
1097 	union {
1098 		REMOVE4resok resok4;
1099 	} REMOVE4res_u;
1100 };
1101 typedef struct REMOVE4res REMOVE4res;
1102 
1103 struct RENAME4args {
1104 	component4 oldname;
1105 	component4 newname;
1106 };
1107 typedef struct RENAME4args RENAME4args;
1108 
1109 struct RENAME4resok {
1110 	change_info4 source_cinfo;
1111 	change_info4 target_cinfo;
1112 };
1113 typedef struct RENAME4resok RENAME4resok;
1114 
1115 struct RENAME4res {
1116 	nfsstat4 status;
1117 	union {
1118 		RENAME4resok resok4;
1119 	} RENAME4res_u;
1120 };
1121 typedef struct RENAME4res RENAME4res;
1122 
1123 struct RENEW4args {
1124 	clientid4 clientid;
1125 };
1126 typedef struct RENEW4args RENEW4args;
1127 
1128 struct RENEW4res {
1129 	nfsstat4 status;
1130 };
1131 typedef struct RENEW4res RENEW4res;
1132 
1133 struct RESTOREFH4res {
1134 	nfsstat4 status;
1135 };
1136 typedef struct RESTOREFH4res RESTOREFH4res;
1137 
1138 struct SAVEFH4res {
1139 	nfsstat4 status;
1140 };
1141 typedef struct SAVEFH4res SAVEFH4res;
1142 
1143 struct SECINFO4args {
1144 	component4 name;
1145 };
1146 typedef struct SECINFO4args SECINFO4args;
1147 
1148 enum rpc_gss_svc_t {
1149 	RPC_GSS_SVC_NONE = 1,
1150 	RPC_GSS_SVC_INTEGRITY = 2,
1151 	RPC_GSS_SVC_PRIVACY = 3
1152 };
1153 typedef enum rpc_gss_svc_t rpc_gss_svc_t;
1154 
1155 struct rpcsec_gss_info {
1156 	sec_oid4 oid;
1157 	qop4 qop;
1158 	rpc_gss_svc_t service;
1159 };
1160 typedef struct rpcsec_gss_info rpcsec_gss_info;
1161 
1162 struct secinfo4 {
1163 	uint32_t flavor;
1164 	union {
1165 		rpcsec_gss_info flavor_info;
1166 	} secinfo4_u;
1167 };
1168 typedef struct secinfo4 secinfo4;
1169 
1170 typedef struct {
1171 	u_int SECINFO4resok_len;
1172 	secinfo4 *SECINFO4resok_val;
1173 } SECINFO4resok;
1174 
1175 struct SECINFO4res {
1176 	nfsstat4 status;
1177 	union {
1178 		SECINFO4resok resok4;
1179 	} SECINFO4res_u;
1180 };
1181 typedef struct SECINFO4res SECINFO4res;
1182 
1183 struct SETATTR4args {
1184 	stateid4 stateid;
1185 	fattr4 obj_attributes;
1186 };
1187 typedef struct SETATTR4args SETATTR4args;
1188 
1189 struct SETATTR4res {
1190 	nfsstat4 status;
1191 	bitmap4 attrsset;
1192 };
1193 typedef struct SETATTR4res SETATTR4res;
1194 
1195 struct SETCLIENTID4args {
1196 	nfs_client_id4 client;
1197 	cb_client4 callback;
1198 	uint32_t callback_ident;
1199 };
1200 typedef struct SETCLIENTID4args SETCLIENTID4args;
1201 
1202 struct SETCLIENTID4resok {
1203 	clientid4 clientid;
1204 	verifier4 setclientid_confirm;
1205 };
1206 typedef struct SETCLIENTID4resok SETCLIENTID4resok;
1207 
1208 struct SETCLIENTID4res {
1209 	nfsstat4 status;
1210 	union {
1211 		SETCLIENTID4resok resok4;
1212 		clientaddr4 client_using;
1213 	} SETCLIENTID4res_u;
1214 };
1215 typedef struct SETCLIENTID4res SETCLIENTID4res;
1216 
1217 struct SETCLIENTID_CONFIRM4args {
1218 	clientid4 clientid;
1219 	verifier4 setclientid_confirm;
1220 };
1221 typedef struct SETCLIENTID_CONFIRM4args SETCLIENTID_CONFIRM4args;
1222 
1223 struct SETCLIENTID_CONFIRM4res {
1224 	nfsstat4 status;
1225 };
1226 typedef struct SETCLIENTID_CONFIRM4res SETCLIENTID_CONFIRM4res;
1227 
1228 struct VERIFY4args {
1229 	fattr4 obj_attributes;
1230 };
1231 typedef struct VERIFY4args VERIFY4args;
1232 
1233 struct VERIFY4res {
1234 	nfsstat4 status;
1235 };
1236 typedef struct VERIFY4res VERIFY4res;
1237 
1238 enum stable_how4 {
1239 	UNSTABLE4 = 0,
1240 	DATA_SYNC4 = 1,
1241 	FILE_SYNC4 = 2
1242 };
1243 typedef enum stable_how4 stable_how4;
1244 
1245 struct WRITE4args {
1246 	stateid4 stateid;
1247 	offset4 offset;
1248 	stable_how4 stable;
1249 	struct {
1250 		u_int data_len;
1251 		char *data_val;
1252 	} data;
1253 };
1254 typedef struct WRITE4args WRITE4args;
1255 
1256 struct WRITE4resok {
1257 	count4 count;
1258 	stable_how4 committed;
1259 	verifier4 writeverf;
1260 };
1261 typedef struct WRITE4resok WRITE4resok;
1262 
1263 struct WRITE4res {
1264 	nfsstat4 status;
1265 	union {
1266 		WRITE4resok resok4;
1267 	} WRITE4res_u;
1268 };
1269 typedef struct WRITE4res WRITE4res;
1270 
1271 struct RELEASE_LOCKOWNER4args {
1272 	lock_owner4 lock_owner;
1273 };
1274 typedef struct RELEASE_LOCKOWNER4args RELEASE_LOCKOWNER4args;
1275 
1276 struct RELEASE_LOCKOWNER4res {
1277 	nfsstat4 status;
1278 };
1279 typedef struct RELEASE_LOCKOWNER4res RELEASE_LOCKOWNER4res;
1280 
1281 struct ILLEGAL4res {
1282 	nfsstat4 status;
1283 };
1284 typedef struct ILLEGAL4res ILLEGAL4res;
1285 
1286 enum nfs_opnum4 {
1287 	OP_ACCESS = 3,
1288 	OP_CLOSE = 4,
1289 	OP_COMMIT = 5,
1290 	OP_CREATE = 6,
1291 	OP_DELEGPURGE = 7,
1292 	OP_DELEGRETURN = 8,
1293 	OP_GETATTR = 9,
1294 	OP_GETFH = 10,
1295 	OP_LINK = 11,
1296 	OP_LOCK = 12,
1297 	OP_LOCKT = 13,
1298 	OP_LOCKU = 14,
1299 	OP_LOOKUP = 15,
1300 	OP_LOOKUPP = 16,
1301 	OP_NVERIFY = 17,
1302 	OP_OPEN = 18,
1303 	OP_OPENATTR = 19,
1304 	OP_OPEN_CONFIRM = 20,
1305 	OP_OPEN_DOWNGRADE = 21,
1306 	OP_PUTFH = 22,
1307 	OP_PUTPUBFH = 23,
1308 	OP_PUTROOTFH = 24,
1309 	OP_READ = 25,
1310 	OP_READDIR = 26,
1311 	OP_READLINK = 27,
1312 	OP_REMOVE = 28,
1313 	OP_RENAME = 29,
1314 	OP_RENEW = 30,
1315 	OP_RESTOREFH = 31,
1316 	OP_SAVEFH = 32,
1317 	OP_SECINFO = 33,
1318 	OP_SETATTR = 34,
1319 	OP_SETCLIENTID = 35,
1320 	OP_SETCLIENTID_CONFIRM = 36,
1321 	OP_VERIFY = 37,
1322 	OP_WRITE = 38,
1323 	OP_RELEASE_LOCKOWNER = 39,
1324 	OP_ILLEGAL = 10044
1325 };
1326 typedef enum nfs_opnum4 nfs_opnum4;
1327 
1328 struct nfs_argop4 {
1329 	nfs_opnum4 argop;
1330 	union {
1331 		ACCESS4args opaccess;
1332 		CLOSE4args opclose;
1333 		COMMIT4args opcommit;
1334 		CREATE4args opcreate;
1335 		DELEGPURGE4args opdelegpurge;
1336 		DELEGRETURN4args opdelegreturn;
1337 		GETATTR4args opgetattr;
1338 		LINK4args oplink;
1339 		LOCK4args oplock;
1340 		LOCKT4args oplockt;
1341 		LOCKU4args oplocku;
1342 		LOOKUP4args oplookup;
1343 		NVERIFY4args opnverify;
1344 		OPEN4args opopen;
1345 		OPENATTR4args opopenattr;
1346 		OPEN_CONFIRM4args opopen_confirm;
1347 		OPEN_DOWNGRADE4args opopen_downgrade;
1348 		PUTFH4args opputfh;
1349 		READ4args opread;
1350 		READDIR4args opreaddir;
1351 		REMOVE4args opremove;
1352 		RENAME4args oprename;
1353 		RENEW4args oprenew;
1354 		SECINFO4args opsecinfo;
1355 		SETATTR4args opsetattr;
1356 		SETCLIENTID4args opsetclientid;
1357 		SETCLIENTID_CONFIRM4args opsetclientid_confirm;
1358 		VERIFY4args opverify;
1359 		WRITE4args opwrite;
1360 		RELEASE_LOCKOWNER4args oprelease_lockowner;
1361 	} nfs_argop4_u;
1362 };
1363 typedef struct nfs_argop4 nfs_argop4;
1364 
1365 struct nfs_resop4 {
1366 	nfs_opnum4 resop;
1367 	union {
1368 		ACCESS4res opaccess;
1369 		CLOSE4res opclose;
1370 		COMMIT4res opcommit;
1371 		CREATE4res opcreate;
1372 		DELEGPURGE4res opdelegpurge;
1373 		DELEGRETURN4res opdelegreturn;
1374 		GETATTR4res opgetattr;
1375 		GETFH4res opgetfh;
1376 		LINK4res oplink;
1377 		LOCK4res oplock;
1378 		LOCKT4res oplockt;
1379 		LOCKU4res oplocku;
1380 		LOOKUP4res oplookup;
1381 		LOOKUPP4res oplookupp;
1382 		NVERIFY4res opnverify;
1383 		OPEN4res opopen;
1384 		OPENATTR4res opopenattr;
1385 		OPEN_CONFIRM4res opopen_confirm;
1386 		OPEN_DOWNGRADE4res opopen_downgrade;
1387 		PUTFH4res opputfh;
1388 		PUTPUBFH4res opputpubfh;
1389 		PUTROOTFH4res opputrootfh;
1390 		READ4res opread;
1391 		READDIR4res opreaddir;
1392 		READLINK4res opreadlink;
1393 		REMOVE4res opremove;
1394 		RENAME4res oprename;
1395 		RENEW4res oprenew;
1396 		RESTOREFH4res oprestorefh;
1397 		SAVEFH4res opsavefh;
1398 		SECINFO4res opsecinfo;
1399 		SETATTR4res opsetattr;
1400 		SETCLIENTID4res opsetclientid;
1401 		SETCLIENTID_CONFIRM4res opsetclientid_confirm;
1402 		VERIFY4res opverify;
1403 		WRITE4res opwrite;
1404 		RELEASE_LOCKOWNER4res oprelease_lockowner;
1405 		ILLEGAL4res opillegal;
1406 	} nfs_resop4_u;
1407 };
1408 typedef struct nfs_resop4 nfs_resop4;
1409 
1410 struct COMPOUND4args {
1411 	utf8str_cs tag;
1412 	uint32_t minorversion;
1413 	struct {
1414 		u_int argarray_len;
1415 		nfs_argop4 *argarray_val;
1416 	} argarray;
1417 };
1418 typedef struct COMPOUND4args COMPOUND4args;
1419 
1420 struct COMPOUND4res {
1421 	nfsstat4 status;
1422 	utf8str_cs tag;
1423 	struct {
1424 		u_int resarray_len;
1425 		nfs_resop4 *resarray_val;
1426 	} resarray;
1427 };
1428 typedef struct COMPOUND4res COMPOUND4res;
1429 
1430 struct CB_GETATTR4args {
1431 	nfs_fh4 fh;
1432 	bitmap4 attr_request;
1433 };
1434 typedef struct CB_GETATTR4args CB_GETATTR4args;
1435 
1436 struct CB_GETATTR4resok {
1437 	fattr4 obj_attributes;
1438 };
1439 typedef struct CB_GETATTR4resok CB_GETATTR4resok;
1440 
1441 struct CB_GETATTR4res {
1442 	nfsstat4 status;
1443 	union {
1444 		CB_GETATTR4resok resok4;
1445 	} CB_GETATTR4res_u;
1446 };
1447 typedef struct CB_GETATTR4res CB_GETATTR4res;
1448 
1449 struct CB_RECALL4args {
1450 	stateid4 stateid;
1451 	bool_t truncate;
1452 	nfs_fh4 fh;
1453 };
1454 typedef struct CB_RECALL4args CB_RECALL4args;
1455 
1456 struct CB_RECALL4res {
1457 	nfsstat4 status;
1458 };
1459 typedef struct CB_RECALL4res CB_RECALL4res;
1460 
1461 struct CB_ILLEGAL4res {
1462 	nfsstat4 status;
1463 };
1464 typedef struct CB_ILLEGAL4res CB_ILLEGAL4res;
1465 
1466 enum nfs_cb_opnum4 {
1467 	OP_CB_GETATTR = 3,
1468 	OP_CB_RECALL = 4,
1469 	OP_CB_ILLEGAL = 10044
1470 };
1471 typedef enum nfs_cb_opnum4 nfs_cb_opnum4;
1472 
1473 struct nfs_cb_argop4 {
1474 	u_int argop;
1475 	union {
1476 		CB_GETATTR4args opcbgetattr;
1477 		CB_RECALL4args opcbrecall;
1478 	} nfs_cb_argop4_u;
1479 };
1480 typedef struct nfs_cb_argop4 nfs_cb_argop4;
1481 
1482 struct nfs_cb_resop4 {
1483 	u_int resop;
1484 	union {
1485 		CB_GETATTR4res opcbgetattr;
1486 		CB_RECALL4res opcbrecall;
1487 		CB_ILLEGAL4res opcbillegal;
1488 	} nfs_cb_resop4_u;
1489 };
1490 typedef struct nfs_cb_resop4 nfs_cb_resop4;
1491 
1492 struct CB_COMPOUND4args {
1493 	utf8str_cs tag;
1494 	uint32_t minorversion;
1495 	uint32_t callback_ident;
1496 	struct {
1497 		u_int argarray_len;
1498 		nfs_cb_argop4 *argarray_val;
1499 	} argarray;
1500 };
1501 typedef struct CB_COMPOUND4args CB_COMPOUND4args;
1502 
1503 struct CB_COMPOUND4res {
1504 	nfsstat4 status;
1505 	utf8str_cs tag;
1506 	struct {
1507 		u_int resarray_len;
1508 		nfs_cb_resop4 *resarray_val;
1509 	} resarray;
1510 };
1511 typedef struct CB_COMPOUND4res CB_COMPOUND4res;
1512 
1513 #define	NFS4_PROGRAM	100003
1514 #define	NFS_V4	4
1515 
1516 #if defined(__STDC__) || defined(__cplusplus)
1517 #define	NFSPROC4_NULL	0
1518 extern  void * nfsproc4_null_4(void *, CLIENT *);
1519 extern  void * nfsproc4_null_4_svc(void *, struct svc_req *);
1520 #define	NFSPROC4_COMPOUND	1
1521 extern  COMPOUND4res * nfsproc4_compound_4(COMPOUND4args *, CLIENT *);
1522 extern  COMPOUND4res * nfsproc4_compound_4_svc(COMPOUND4args *, struct svc_req *);
1523 extern int nfs4_program_4_freeresult(SVCXPRT *, xdrproc_t, caddr_t);
1524 
1525 #else /* K&R C */
1526 #define	NFSPROC4_NULL	0
1527 extern  void * nfsproc4_null_4();
1528 extern  void * nfsproc4_null_4_svc();
1529 #define	NFSPROC4_COMPOUND	1
1530 extern  COMPOUND4res * nfsproc4_compound_4();
1531 extern  COMPOUND4res * nfsproc4_compound_4_svc();
1532 extern int nfs4_program_4_freeresult();
1533 #endif /* K&R C */
1534 
1535 #define	NFS4_CALLBACK	0x40000000
1536 #define	NFS_CB	1
1537 
1538 #if defined(__STDC__) || defined(__cplusplus)
1539 #define	CB_NULL	0
1540 extern  void * cb_null_1(void *, CLIENT *);
1541 extern  void * cb_null_1_svc(void *, struct svc_req *);
1542 #define	CB_COMPOUND	1
1543 extern  CB_COMPOUND4res * cb_compound_1(CB_COMPOUND4args *, CLIENT *);
1544 extern  CB_COMPOUND4res * cb_compound_1_svc(CB_COMPOUND4args *, struct svc_req *);
1545 extern int nfs4_callback_1_freeresult(SVCXPRT *, xdrproc_t, caddr_t);
1546 
1547 #else /* K&R C */
1548 #define	CB_NULL	0
1549 extern  void * cb_null_1();
1550 extern  void * cb_null_1_svc();
1551 #define	CB_COMPOUND	1
1552 extern  CB_COMPOUND4res * cb_compound_1();
1553 extern  CB_COMPOUND4res * cb_compound_1_svc();
1554 extern int nfs4_callback_1_freeresult();
1555 #endif /* K&R C */
1556 
1557 /* the xdr functions */
1558 
1559 #if defined(__STDC__) || defined(__cplusplus)
1560 extern  bool_t xdr_nfs_ftype4(XDR *, nfs_ftype4*);
1561 extern  bool_t xdr_nfsstat4(XDR *, nfsstat4*);
1562 extern  bool_t xdr_attrlist4(XDR *, attrlist4*);
1563 extern  bool_t xdr_bitmap4(XDR *, bitmap4*);
1564 extern  bool_t xdr_changeid4(XDR *, changeid4*);
1565 extern  bool_t xdr_clientid4(XDR *, clientid4*);
1566 extern  bool_t xdr_count4(XDR *, count4*);
1567 extern  bool_t xdr_length4(XDR *, length4*);
1568 extern  bool_t xdr_mode4(XDR *, mode4*);
1569 extern  bool_t xdr_nfs_cookie4(XDR *, nfs_cookie4*);
1570 extern  bool_t xdr_nfs_fh4(XDR *, nfs_fh4*);
1571 extern  bool_t xdr_nfs_lease4(XDR *, nfs_lease4*);
1572 extern  bool_t xdr_offset4(XDR *, offset4*);
1573 extern  bool_t xdr_qop4(XDR *, qop4*);
1574 extern  bool_t xdr_sec_oid4(XDR *, sec_oid4*);
1575 extern  bool_t xdr_seqid4(XDR *, seqid4*);
1576 extern  bool_t xdr_utf8string(XDR *, utf8string*);
1577 extern  bool_t xdr_utf8str_cis(XDR *, utf8str_cis*);
1578 extern  bool_t xdr_utf8str_cs(XDR *, utf8str_cs*);
1579 extern  bool_t xdr_utf8str_mixed(XDR *, utf8str_mixed*);
1580 extern  bool_t xdr_component4(XDR *, component4*);
1581 extern  bool_t xdr_linktext4(XDR *, linktext4*);
1582 extern  bool_t xdr_ascii_REQUIRED4(XDR *, ascii_REQUIRED4*);
1583 extern  bool_t xdr_pathname4(XDR *, pathname4*);
1584 extern  bool_t xdr_nfs_lockid4(XDR *, nfs_lockid4*);
1585 extern  bool_t xdr_verifier4(XDR *, verifier4);
1586 extern  bool_t xdr_nfstime4(XDR *, nfstime4*);
1587 extern  bool_t xdr_time_how4(XDR *, time_how4*);
1588 extern  bool_t xdr_settime4(XDR *, settime4*);
1589 extern  bool_t xdr_fsid4(XDR *, fsid4*);
1590 extern  bool_t xdr_fs_location4(XDR *, fs_location4*);
1591 extern  bool_t xdr_fs_locations4(XDR *, fs_locations4*);
1592 extern  bool_t xdr_acetype4(XDR *, acetype4*);
1593 extern  bool_t xdr_aceflag4(XDR *, aceflag4*);
1594 extern  bool_t xdr_acemask4(XDR *, acemask4*);
1595 extern  bool_t xdr_nfsace4(XDR *, nfsace4*);
1596 extern  bool_t xdr_specdata4(XDR *, specdata4*);
1597 extern  bool_t xdr_fattr4_supported_attrs(XDR *, fattr4_supported_attrs*);
1598 extern  bool_t xdr_fattr4_type(XDR *, fattr4_type*);
1599 extern  bool_t xdr_fattr4_fh_expire_type(XDR *, fattr4_fh_expire_type*);
1600 extern  bool_t xdr_fattr4_change(XDR *, fattr4_change*);
1601 extern  bool_t xdr_fattr4_size(XDR *, fattr4_size*);
1602 extern  bool_t xdr_fattr4_link_support(XDR *, fattr4_link_support*);
1603 extern  bool_t xdr_fattr4_symlink_support(XDR *, fattr4_symlink_support*);
1604 extern  bool_t xdr_fattr4_named_attr(XDR *, fattr4_named_attr*);
1605 extern  bool_t xdr_fattr4_fsid(XDR *, fattr4_fsid*);
1606 extern  bool_t xdr_fattr4_unique_handles(XDR *, fattr4_unique_handles*);
1607 extern  bool_t xdr_fattr4_lease_time(XDR *, fattr4_lease_time*);
1608 extern  bool_t xdr_fattr4_rdattr_error(XDR *, fattr4_rdattr_error*);
1609 extern  bool_t xdr_fattr4_acl(XDR *, fattr4_acl*);
1610 extern  bool_t xdr_fattr4_aclsupport(XDR *, fattr4_aclsupport*);
1611 extern  bool_t xdr_fattr4_archive(XDR *, fattr4_archive*);
1612 extern  bool_t xdr_fattr4_cansettime(XDR *, fattr4_cansettime*);
1613 extern  bool_t xdr_fattr4_case_insensitive(XDR *, fattr4_case_insensitive*);
1614 extern  bool_t xdr_fattr4_case_preserving(XDR *, fattr4_case_preserving*);
1615 extern  bool_t xdr_fattr4_chown_restricted(XDR *, fattr4_chown_restricted*);
1616 extern  bool_t xdr_fattr4_fileid(XDR *, fattr4_fileid*);
1617 extern  bool_t xdr_fattr4_files_avail(XDR *, fattr4_files_avail*);
1618 extern  bool_t xdr_fattr4_filehandle(XDR *, fattr4_filehandle*);
1619 extern  bool_t xdr_fattr4_files_free(XDR *, fattr4_files_free*);
1620 extern  bool_t xdr_fattr4_files_total(XDR *, fattr4_files_total*);
1621 extern  bool_t xdr_fattr4_fs_locations(XDR *, fattr4_fs_locations*);
1622 extern  bool_t xdr_fattr4_hidden(XDR *, fattr4_hidden*);
1623 extern  bool_t xdr_fattr4_homogeneous(XDR *, fattr4_homogeneous*);
1624 extern  bool_t xdr_fattr4_maxfilesize(XDR *, fattr4_maxfilesize*);
1625 extern  bool_t xdr_fattr4_maxlink(XDR *, fattr4_maxlink*);
1626 extern  bool_t xdr_fattr4_maxname(XDR *, fattr4_maxname*);
1627 extern  bool_t xdr_fattr4_maxread(XDR *, fattr4_maxread*);
1628 extern  bool_t xdr_fattr4_maxwrite(XDR *, fattr4_maxwrite*);
1629 extern  bool_t xdr_fattr4_mimetype(XDR *, fattr4_mimetype*);
1630 extern  bool_t xdr_fattr4_mode(XDR *, fattr4_mode*);
1631 extern  bool_t xdr_fattr4_mounted_on_fileid(XDR *, fattr4_mounted_on_fileid*);
1632 extern  bool_t xdr_fattr4_no_trunc(XDR *, fattr4_no_trunc*);
1633 extern  bool_t xdr_fattr4_numlinks(XDR *, fattr4_numlinks*);
1634 extern  bool_t xdr_fattr4_owner(XDR *, fattr4_owner*);
1635 extern  bool_t xdr_fattr4_owner_group(XDR *, fattr4_owner_group*);
1636 extern  bool_t xdr_fattr4_quota_avail_hard(XDR *, fattr4_quota_avail_hard*);
1637 extern  bool_t xdr_fattr4_quota_avail_soft(XDR *, fattr4_quota_avail_soft*);
1638 extern  bool_t xdr_fattr4_quota_used(XDR *, fattr4_quota_used*);
1639 extern  bool_t xdr_fattr4_rawdev(XDR *, fattr4_rawdev*);
1640 extern  bool_t xdr_fattr4_space_avail(XDR *, fattr4_space_avail*);
1641 extern  bool_t xdr_fattr4_space_free(XDR *, fattr4_space_free*);
1642 extern  bool_t xdr_fattr4_space_total(XDR *, fattr4_space_total*);
1643 extern  bool_t xdr_fattr4_space_used(XDR *, fattr4_space_used*);
1644 extern  bool_t xdr_fattr4_system(XDR *, fattr4_system*);
1645 extern  bool_t xdr_fattr4_time_access(XDR *, fattr4_time_access*);
1646 extern  bool_t xdr_fattr4_time_access_set(XDR *, fattr4_time_access_set*);
1647 extern  bool_t xdr_fattr4_time_backup(XDR *, fattr4_time_backup*);
1648 extern  bool_t xdr_fattr4_time_create(XDR *, fattr4_time_create*);
1649 extern  bool_t xdr_fattr4_time_delta(XDR *, fattr4_time_delta*);
1650 extern  bool_t xdr_fattr4_time_metadata(XDR *, fattr4_time_metadata*);
1651 extern  bool_t xdr_fattr4_time_modify(XDR *, fattr4_time_modify*);
1652 extern  bool_t xdr_fattr4_time_modify_set(XDR *, fattr4_time_modify_set*);
1653 extern  bool_t xdr_fattr4(XDR *, fattr4*);
1654 extern  bool_t xdr_change_info4(XDR *, change_info4*);
1655 extern  bool_t xdr_clientaddr4(XDR *, clientaddr4*);
1656 extern  bool_t xdr_cb_client4(XDR *, cb_client4*);
1657 extern  bool_t xdr_stateid4(XDR *, stateid4*);
1658 extern  bool_t xdr_nfs_client_id4(XDR *, nfs_client_id4*);
1659 extern  bool_t xdr_open_owner4(XDR *, open_owner4*);
1660 extern  bool_t xdr_lock_owner4(XDR *, lock_owner4*);
1661 extern  bool_t xdr_nfs_lock_type4(XDR *, nfs_lock_type4*);
1662 extern  bool_t xdr_ACCESS4args(XDR *, ACCESS4args*);
1663 extern  bool_t xdr_ACCESS4resok(XDR *, ACCESS4resok*);
1664 extern  bool_t xdr_ACCESS4res(XDR *, ACCESS4res*);
1665 extern  bool_t xdr_CLOSE4args(XDR *, CLOSE4args*);
1666 extern  bool_t xdr_CLOSE4res(XDR *, CLOSE4res*);
1667 extern  bool_t xdr_COMMIT4args(XDR *, COMMIT4args*);
1668 extern  bool_t xdr_COMMIT4resok(XDR *, COMMIT4resok*);
1669 extern  bool_t xdr_COMMIT4res(XDR *, COMMIT4res*);
1670 extern  bool_t xdr_createtype4(XDR *, createtype4*);
1671 extern  bool_t xdr_CREATE4args(XDR *, CREATE4args*);
1672 extern  bool_t xdr_CREATE4resok(XDR *, CREATE4resok*);
1673 extern  bool_t xdr_CREATE4res(XDR *, CREATE4res*);
1674 extern  bool_t xdr_DELEGPURGE4args(XDR *, DELEGPURGE4args*);
1675 extern  bool_t xdr_DELEGPURGE4res(XDR *, DELEGPURGE4res*);
1676 extern  bool_t xdr_DELEGRETURN4args(XDR *, DELEGRETURN4args*);
1677 extern  bool_t xdr_DELEGRETURN4res(XDR *, DELEGRETURN4res*);
1678 extern  bool_t xdr_GETATTR4args(XDR *, GETATTR4args*);
1679 extern  bool_t xdr_GETATTR4resok(XDR *, GETATTR4resok*);
1680 extern  bool_t xdr_GETATTR4res(XDR *, GETATTR4res*);
1681 extern  bool_t xdr_GETFH4resok(XDR *, GETFH4resok*);
1682 extern  bool_t xdr_GETFH4res(XDR *, GETFH4res*);
1683 extern  bool_t xdr_LINK4args(XDR *, LINK4args*);
1684 extern  bool_t xdr_LINK4resok(XDR *, LINK4resok*);
1685 extern  bool_t xdr_LINK4res(XDR *, LINK4res*);
1686 extern  bool_t xdr_open_to_lock_owner4(XDR *, open_to_lock_owner4*);
1687 extern  bool_t xdr_exist_lock_owner4(XDR *, exist_lock_owner4*);
1688 extern  bool_t xdr_locker4(XDR *, locker4*);
1689 extern  bool_t xdr_LOCK4args(XDR *, LOCK4args*);
1690 extern  bool_t xdr_LOCK4denied(XDR *, LOCK4denied*);
1691 extern  bool_t xdr_LOCK4resok(XDR *, LOCK4resok*);
1692 extern  bool_t xdr_LOCK4res(XDR *, LOCK4res*);
1693 extern  bool_t xdr_LOCKT4args(XDR *, LOCKT4args*);
1694 extern  bool_t xdr_LOCKT4res(XDR *, LOCKT4res*);
1695 extern  bool_t xdr_LOCKU4args(XDR *, LOCKU4args*);
1696 extern  bool_t xdr_LOCKU4res(XDR *, LOCKU4res*);
1697 extern  bool_t xdr_LOOKUP4args(XDR *, LOOKUP4args*);
1698 extern  bool_t xdr_LOOKUP4res(XDR *, LOOKUP4res*);
1699 extern  bool_t xdr_LOOKUPP4res(XDR *, LOOKUPP4res*);
1700 extern  bool_t xdr_NVERIFY4args(XDR *, NVERIFY4args*);
1701 extern  bool_t xdr_NVERIFY4res(XDR *, NVERIFY4res*);
1702 extern  bool_t xdr_createmode4(XDR *, createmode4*);
1703 extern  bool_t xdr_createhow4(XDR *, createhow4*);
1704 extern  bool_t xdr_opentype4(XDR *, opentype4*);
1705 extern  bool_t xdr_openflag4(XDR *, openflag4*);
1706 extern  bool_t xdr_limit_by4(XDR *, limit_by4*);
1707 extern  bool_t xdr_nfs_modified_limit4(XDR *, nfs_modified_limit4*);
1708 extern  bool_t xdr_nfs_space_limit4(XDR *, nfs_space_limit4*);
1709 extern  bool_t xdr_open_delegation_type4(XDR *, open_delegation_type4*);
1710 extern  bool_t xdr_open_claim_type4(XDR *, open_claim_type4*);
1711 extern  bool_t xdr_open_claim_delegate_cur4(XDR *, open_claim_delegate_cur4*);
1712 extern  bool_t xdr_open_claim4(XDR *, open_claim4*);
1713 extern  bool_t xdr_OPEN4args(XDR *, OPEN4args*);
1714 extern  bool_t xdr_open_read_delegation4(XDR *, open_read_delegation4*);
1715 extern  bool_t xdr_open_write_delegation4(XDR *, open_write_delegation4*);
1716 extern  bool_t xdr_open_delegation4(XDR *, open_delegation4*);
1717 extern  bool_t xdr_OPEN4resok(XDR *, OPEN4resok*);
1718 extern  bool_t xdr_OPEN4res(XDR *, OPEN4res*);
1719 extern  bool_t xdr_OPENATTR4args(XDR *, OPENATTR4args*);
1720 extern  bool_t xdr_OPENATTR4res(XDR *, OPENATTR4res*);
1721 extern  bool_t xdr_OPEN_CONFIRM4args(XDR *, OPEN_CONFIRM4args*);
1722 extern  bool_t xdr_OPEN_CONFIRM4resok(XDR *, OPEN_CONFIRM4resok*);
1723 extern  bool_t xdr_OPEN_CONFIRM4res(XDR *, OPEN_CONFIRM4res*);
1724 extern  bool_t xdr_OPEN_DOWNGRADE4args(XDR *, OPEN_DOWNGRADE4args*);
1725 extern  bool_t xdr_OPEN_DOWNGRADE4resok(XDR *, OPEN_DOWNGRADE4resok*);
1726 extern  bool_t xdr_OPEN_DOWNGRADE4res(XDR *, OPEN_DOWNGRADE4res*);
1727 extern  bool_t xdr_PUTFH4args(XDR *, PUTFH4args*);
1728 extern  bool_t xdr_PUTFH4res(XDR *, PUTFH4res*);
1729 extern  bool_t xdr_PUTPUBFH4res(XDR *, PUTPUBFH4res*);
1730 extern  bool_t xdr_PUTROOTFH4res(XDR *, PUTROOTFH4res*);
1731 extern  bool_t xdr_READ4args(XDR *, READ4args*);
1732 extern  bool_t xdr_READ4resok(XDR *, READ4resok*);
1733 extern  bool_t xdr_READ4res(XDR *, READ4res*);
1734 extern  bool_t xdr_READDIR4args(XDR *, READDIR4args*);
1735 extern  bool_t xdr_entry4(XDR *, entry4*);
1736 extern  bool_t xdr_dirlist4(XDR *, dirlist4*);
1737 extern  bool_t xdr_READDIR4resok(XDR *, READDIR4resok*);
1738 extern  bool_t xdr_READDIR4res(XDR *, READDIR4res*);
1739 extern  bool_t xdr_READLINK4resok(XDR *, READLINK4resok*);
1740 extern  bool_t xdr_READLINK4res(XDR *, READLINK4res*);
1741 extern  bool_t xdr_REMOVE4args(XDR *, REMOVE4args*);
1742 extern  bool_t xdr_REMOVE4resok(XDR *, REMOVE4resok*);
1743 extern  bool_t xdr_REMOVE4res(XDR *, REMOVE4res*);
1744 extern  bool_t xdr_RENAME4args(XDR *, RENAME4args*);
1745 extern  bool_t xdr_RENAME4resok(XDR *, RENAME4resok*);
1746 extern  bool_t xdr_RENAME4res(XDR *, RENAME4res*);
1747 extern  bool_t xdr_RENEW4args(XDR *, RENEW4args*);
1748 extern  bool_t xdr_RENEW4res(XDR *, RENEW4res*);
1749 extern  bool_t xdr_RESTOREFH4res(XDR *, RESTOREFH4res*);
1750 extern  bool_t xdr_SAVEFH4res(XDR *, SAVEFH4res*);
1751 extern  bool_t xdr_SECINFO4args(XDR *, SECINFO4args*);
1752 extern  bool_t xdr_rpc_gss_svc_t(XDR *, rpc_gss_svc_t*);
1753 extern  bool_t xdr_rpcsec_gss_info(XDR *, rpcsec_gss_info*);
1754 extern  bool_t xdr_secinfo4(XDR *, secinfo4*);
1755 extern  bool_t xdr_SECINFO4resok(XDR *, SECINFO4resok*);
1756 extern  bool_t xdr_SECINFO4res(XDR *, SECINFO4res*);
1757 extern  bool_t xdr_SETATTR4args(XDR *, SETATTR4args*);
1758 extern  bool_t xdr_SETATTR4res(XDR *, SETATTR4res*);
1759 extern  bool_t xdr_SETCLIENTID4args(XDR *, SETCLIENTID4args*);
1760 extern  bool_t xdr_SETCLIENTID4resok(XDR *, SETCLIENTID4resok*);
1761 extern  bool_t xdr_SETCLIENTID4res(XDR *, SETCLIENTID4res*);
1762 extern  bool_t xdr_SETCLIENTID_CONFIRM4args(XDR *, SETCLIENTID_CONFIRM4args*);
1763 extern  bool_t xdr_SETCLIENTID_CONFIRM4res(XDR *, SETCLIENTID_CONFIRM4res*);
1764 extern  bool_t xdr_VERIFY4args(XDR *, VERIFY4args*);
1765 extern  bool_t xdr_VERIFY4res(XDR *, VERIFY4res*);
1766 extern  bool_t xdr_stable_how4(XDR *, stable_how4*);
1767 extern  bool_t xdr_WRITE4args(XDR *, WRITE4args*);
1768 extern  bool_t xdr_WRITE4resok(XDR *, WRITE4resok*);
1769 extern  bool_t xdr_WRITE4res(XDR *, WRITE4res*);
1770 extern  bool_t xdr_RELEASE_LOCKOWNER4args(XDR *, RELEASE_LOCKOWNER4args*);
1771 extern  bool_t xdr_RELEASE_LOCKOWNER4res(XDR *, RELEASE_LOCKOWNER4res*);
1772 extern  bool_t xdr_ILLEGAL4res(XDR *, ILLEGAL4res*);
1773 extern  bool_t xdr_nfs_opnum4(XDR *, nfs_opnum4*);
1774 extern  bool_t xdr_nfs_argop4(XDR *, nfs_argop4*);
1775 extern  bool_t xdr_nfs_resop4(XDR *, nfs_resop4*);
1776 extern  bool_t xdr_COMPOUND4args(XDR *, COMPOUND4args*);
1777 extern  bool_t xdr_COMPOUND4res(XDR *, COMPOUND4res*);
1778 extern  bool_t xdr_CB_GETATTR4args(XDR *, CB_GETATTR4args*);
1779 extern  bool_t xdr_CB_GETATTR4resok(XDR *, CB_GETATTR4resok*);
1780 extern  bool_t xdr_CB_GETATTR4res(XDR *, CB_GETATTR4res*);
1781 extern  bool_t xdr_CB_RECALL4args(XDR *, CB_RECALL4args*);
1782 extern  bool_t xdr_CB_RECALL4res(XDR *, CB_RECALL4res*);
1783 extern  bool_t xdr_CB_ILLEGAL4res(XDR *, CB_ILLEGAL4res*);
1784 extern  bool_t xdr_nfs_cb_opnum4(XDR *, nfs_cb_opnum4*);
1785 extern  bool_t xdr_nfs_cb_argop4(XDR *, nfs_cb_argop4*);
1786 extern  bool_t xdr_nfs_cb_resop4(XDR *, nfs_cb_resop4*);
1787 extern  bool_t xdr_CB_COMPOUND4args(XDR *, CB_COMPOUND4args*);
1788 extern  bool_t xdr_CB_COMPOUND4res(XDR *, CB_COMPOUND4res*);
1789 
1790 #else /* K&R C */
1791 extern bool_t xdr_nfs_ftype4();
1792 extern bool_t xdr_nfsstat4();
1793 extern bool_t xdr_attrlist4();
1794 extern bool_t xdr_bitmap4();
1795 extern bool_t xdr_changeid4();
1796 extern bool_t xdr_clientid4();
1797 extern bool_t xdr_count4();
1798 extern bool_t xdr_length4();
1799 extern bool_t xdr_mode4();
1800 extern bool_t xdr_nfs_cookie4();
1801 extern bool_t xdr_nfs_fh4();
1802 extern bool_t xdr_nfs_lease4();
1803 extern bool_t xdr_offset4();
1804 extern bool_t xdr_qop4();
1805 extern bool_t xdr_sec_oid4();
1806 extern bool_t xdr_seqid4();
1807 extern bool_t xdr_utf8string();
1808 extern bool_t xdr_utf8str_cis();
1809 extern bool_t xdr_utf8str_cs();
1810 extern bool_t xdr_utf8str_mixed();
1811 extern bool_t xdr_component4();
1812 extern bool_t xdr_linktext4();
1813 extern bool_t xdr_ascii_REQUIRED4();
1814 extern bool_t xdr_pathname4();
1815 extern bool_t xdr_nfs_lockid4();
1816 extern bool_t xdr_verifier4();
1817 extern bool_t xdr_nfstime4();
1818 extern bool_t xdr_time_how4();
1819 extern bool_t xdr_settime4();
1820 extern bool_t xdr_fsid4();
1821 extern bool_t xdr_fs_location4();
1822 extern bool_t xdr_fs_locations4();
1823 extern bool_t xdr_acetype4();
1824 extern bool_t xdr_aceflag4();
1825 extern bool_t xdr_acemask4();
1826 extern bool_t xdr_nfsace4();
1827 extern bool_t xdr_specdata4();
1828 extern bool_t xdr_fattr4_supported_attrs();
1829 extern bool_t xdr_fattr4_type();
1830 extern bool_t xdr_fattr4_fh_expire_type();
1831 extern bool_t xdr_fattr4_change();
1832 extern bool_t xdr_fattr4_size();
1833 extern bool_t xdr_fattr4_link_support();
1834 extern bool_t xdr_fattr4_symlink_support();
1835 extern bool_t xdr_fattr4_named_attr();
1836 extern bool_t xdr_fattr4_fsid();
1837 extern bool_t xdr_fattr4_unique_handles();
1838 extern bool_t xdr_fattr4_lease_time();
1839 extern bool_t xdr_fattr4_rdattr_error();
1840 extern bool_t xdr_fattr4_acl();
1841 extern bool_t xdr_fattr4_aclsupport();
1842 extern bool_t xdr_fattr4_archive();
1843 extern bool_t xdr_fattr4_cansettime();
1844 extern bool_t xdr_fattr4_case_insensitive();
1845 extern bool_t xdr_fattr4_case_preserving();
1846 extern bool_t xdr_fattr4_chown_restricted();
1847 extern bool_t xdr_fattr4_fileid();
1848 extern bool_t xdr_fattr4_files_avail();
1849 extern bool_t xdr_fattr4_filehandle();
1850 extern bool_t xdr_fattr4_files_free();
1851 extern bool_t xdr_fattr4_files_total();
1852 extern bool_t xdr_fattr4_fs_locations();
1853 extern bool_t xdr_fattr4_hidden();
1854 extern bool_t xdr_fattr4_homogeneous();
1855 extern bool_t xdr_fattr4_maxfilesize();
1856 extern bool_t xdr_fattr4_maxlink();
1857 extern bool_t xdr_fattr4_maxname();
1858 extern bool_t xdr_fattr4_maxread();
1859 extern bool_t xdr_fattr4_maxwrite();
1860 extern bool_t xdr_fattr4_mimetype();
1861 extern bool_t xdr_fattr4_mode();
1862 extern bool_t xdr_fattr4_mounted_on_fileid();
1863 extern bool_t xdr_fattr4_no_trunc();
1864 extern bool_t xdr_fattr4_numlinks();
1865 extern bool_t xdr_fattr4_owner();
1866 extern bool_t xdr_fattr4_owner_group();
1867 extern bool_t xdr_fattr4_quota_avail_hard();
1868 extern bool_t xdr_fattr4_quota_avail_soft();
1869 extern bool_t xdr_fattr4_quota_used();
1870 extern bool_t xdr_fattr4_rawdev();
1871 extern bool_t xdr_fattr4_space_avail();
1872 extern bool_t xdr_fattr4_space_free();
1873 extern bool_t xdr_fattr4_space_total();
1874 extern bool_t xdr_fattr4_space_used();
1875 extern bool_t xdr_fattr4_system();
1876 extern bool_t xdr_fattr4_time_access();
1877 extern bool_t xdr_fattr4_time_access_set();
1878 extern bool_t xdr_fattr4_time_backup();
1879 extern bool_t xdr_fattr4_time_create();
1880 extern bool_t xdr_fattr4_time_delta();
1881 extern bool_t xdr_fattr4_time_metadata();
1882 extern bool_t xdr_fattr4_time_modify();
1883 extern bool_t xdr_fattr4_time_modify_set();
1884 extern bool_t xdr_fattr4();
1885 extern bool_t xdr_change_info4();
1886 extern bool_t xdr_clientaddr4();
1887 extern bool_t xdr_cb_client4();
1888 extern bool_t xdr_stateid4();
1889 extern bool_t xdr_nfs_client_id4();
1890 extern bool_t xdr_open_owner4();
1891 extern bool_t xdr_lock_owner4();
1892 extern bool_t xdr_nfs_lock_type4();
1893 extern bool_t xdr_ACCESS4args();
1894 extern bool_t xdr_ACCESS4resok();
1895 extern bool_t xdr_ACCESS4res();
1896 extern bool_t xdr_CLOSE4args();
1897 extern bool_t xdr_CLOSE4res();
1898 extern bool_t xdr_COMMIT4args();
1899 extern bool_t xdr_COMMIT4resok();
1900 extern bool_t xdr_COMMIT4res();
1901 extern bool_t xdr_createtype4();
1902 extern bool_t xdr_CREATE4args();
1903 extern bool_t xdr_CREATE4resok();
1904 extern bool_t xdr_CREATE4res();
1905 extern bool_t xdr_DELEGPURGE4args();
1906 extern bool_t xdr_DELEGPURGE4res();
1907 extern bool_t xdr_DELEGRETURN4args();
1908 extern bool_t xdr_DELEGRETURN4res();
1909 extern bool_t xdr_GETATTR4args();
1910 extern bool_t xdr_GETATTR4resok();
1911 extern bool_t xdr_GETATTR4res();
1912 extern bool_t xdr_GETFH4resok();
1913 extern bool_t xdr_GETFH4res();
1914 extern bool_t xdr_LINK4args();
1915 extern bool_t xdr_LINK4resok();
1916 extern bool_t xdr_LINK4res();
1917 extern bool_t xdr_open_to_lock_owner4();
1918 extern bool_t xdr_exist_lock_owner4();
1919 extern bool_t xdr_locker4();
1920 extern bool_t xdr_LOCK4args();
1921 extern bool_t xdr_LOCK4denied();
1922 extern bool_t xdr_LOCK4resok();
1923 extern bool_t xdr_LOCK4res();
1924 extern bool_t xdr_LOCKT4args();
1925 extern bool_t xdr_LOCKT4res();
1926 extern bool_t xdr_LOCKU4args();
1927 extern bool_t xdr_LOCKU4res();
1928 extern bool_t xdr_LOOKUP4args();
1929 extern bool_t xdr_LOOKUP4res();
1930 extern bool_t xdr_LOOKUPP4res();
1931 extern bool_t xdr_NVERIFY4args();
1932 extern bool_t xdr_NVERIFY4res();
1933 extern bool_t xdr_createmode4();
1934 extern bool_t xdr_createhow4();
1935 extern bool_t xdr_opentype4();
1936 extern bool_t xdr_openflag4();
1937 extern bool_t xdr_limit_by4();
1938 extern bool_t xdr_nfs_modified_limit4();
1939 extern bool_t xdr_nfs_space_limit4();
1940 extern bool_t xdr_open_delegation_type4();
1941 extern bool_t xdr_open_claim_type4();
1942 extern bool_t xdr_open_claim_delegate_cur4();
1943 extern bool_t xdr_open_claim4();
1944 extern bool_t xdr_OPEN4args();
1945 extern bool_t xdr_open_read_delegation4();
1946 extern bool_t xdr_open_write_delegation4();
1947 extern bool_t xdr_open_delegation4();
1948 extern bool_t xdr_OPEN4resok();
1949 extern bool_t xdr_OPEN4res();
1950 extern bool_t xdr_OPENATTR4args();
1951 extern bool_t xdr_OPENATTR4res();
1952 extern bool_t xdr_OPEN_CONFIRM4args();
1953 extern bool_t xdr_OPEN_CONFIRM4resok();
1954 extern bool_t xdr_OPEN_CONFIRM4res();
1955 extern bool_t xdr_OPEN_DOWNGRADE4args();
1956 extern bool_t xdr_OPEN_DOWNGRADE4resok();
1957 extern bool_t xdr_OPEN_DOWNGRADE4res();
1958 extern bool_t xdr_PUTFH4args();
1959 extern bool_t xdr_PUTFH4res();
1960 extern bool_t xdr_PUTPUBFH4res();
1961 extern bool_t xdr_PUTROOTFH4res();
1962 extern bool_t xdr_READ4args();
1963 extern bool_t xdr_READ4resok();
1964 extern bool_t xdr_READ4res();
1965 extern bool_t xdr_READDIR4args();
1966 extern bool_t xdr_entry4();
1967 extern bool_t xdr_dirlist4();
1968 extern bool_t xdr_READDIR4resok();
1969 extern bool_t xdr_READDIR4res();
1970 extern bool_t xdr_READLINK4resok();
1971 extern bool_t xdr_READLINK4res();
1972 extern bool_t xdr_REMOVE4args();
1973 extern bool_t xdr_REMOVE4resok();
1974 extern bool_t xdr_REMOVE4res();
1975 extern bool_t xdr_RENAME4args();
1976 extern bool_t xdr_RENAME4resok();
1977 extern bool_t xdr_RENAME4res();
1978 extern bool_t xdr_RENEW4args();
1979 extern bool_t xdr_RENEW4res();
1980 extern bool_t xdr_RESTOREFH4res();
1981 extern bool_t xdr_SAVEFH4res();
1982 extern bool_t xdr_SECINFO4args();
1983 extern bool_t xdr_rpc_gss_svc_t();
1984 extern bool_t xdr_rpcsec_gss_info();
1985 extern bool_t xdr_secinfo4();
1986 extern bool_t xdr_SECINFO4resok();
1987 extern bool_t xdr_SECINFO4res();
1988 extern bool_t xdr_SETATTR4args();
1989 extern bool_t xdr_SETATTR4res();
1990 extern bool_t xdr_SETCLIENTID4args();
1991 extern bool_t xdr_SETCLIENTID4resok();
1992 extern bool_t xdr_SETCLIENTID4res();
1993 extern bool_t xdr_SETCLIENTID_CONFIRM4args();
1994 extern bool_t xdr_SETCLIENTID_CONFIRM4res();
1995 extern bool_t xdr_VERIFY4args();
1996 extern bool_t xdr_VERIFY4res();
1997 extern bool_t xdr_stable_how4();
1998 extern bool_t xdr_WRITE4args();
1999 extern bool_t xdr_WRITE4resok();
2000 extern bool_t xdr_WRITE4res();
2001 extern bool_t xdr_RELEASE_LOCKOWNER4args();
2002 extern bool_t xdr_RELEASE_LOCKOWNER4res();
2003 extern bool_t xdr_ILLEGAL4res();
2004 extern bool_t xdr_nfs_opnum4();
2005 extern bool_t xdr_nfs_argop4();
2006 extern bool_t xdr_nfs_resop4();
2007 extern bool_t xdr_COMPOUND4args();
2008 extern bool_t xdr_COMPOUND4res();
2009 extern bool_t xdr_CB_GETATTR4args();
2010 extern bool_t xdr_CB_GETATTR4resok();
2011 extern bool_t xdr_CB_GETATTR4res();
2012 extern bool_t xdr_CB_RECALL4args();
2013 extern bool_t xdr_CB_RECALL4res();
2014 extern bool_t xdr_CB_ILLEGAL4res();
2015 extern bool_t xdr_nfs_cb_opnum4();
2016 extern bool_t xdr_nfs_cb_argop4();
2017 extern bool_t xdr_nfs_cb_resop4();
2018 extern bool_t xdr_CB_COMPOUND4args();
2019 extern bool_t xdr_CB_COMPOUND4res();
2020 
2021 #endif /* K&R C */
2022 
2023 #ifdef __cplusplus
2024 }
2025 #endif
2026 
2027 #endif /* !_NFS4_PROT_H_RPCGEN */
2028