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