Blob


1 /*
2 * NFS mounter V3; see RFC 1813
3 */
4 /*
5 #pragma lib "libsunrpc.a"
6 #pragma src "/sys/src/libsunrpc"
7 */
8 #define _NFS3H_ /* sorry */
10 enum {
11 NfsMount1HandleSize = 32,
12 NfsMount3MaxPathSize = 1024,
13 NfsMount3MaxNameSize = 255,
14 NfsMount3MaxHandleSize = 64,
15 NfsMount3Program = 100005,
16 NfsMount3Version = 3,
17 NfsMount1Program = 100005,
18 NfsMount1Version = 1
19 };
20 typedef struct NfsMount3TNull NfsMount3TNull;
21 typedef struct NfsMount3RNull NfsMount3RNull;
22 typedef struct NfsMount3TMnt NfsMount3TMnt;
23 typedef struct NfsMount3RMnt NfsMount3RMnt;
24 typedef struct NfsMount3TDump NfsMount3TDump;
25 typedef struct NfsMount3Entry NfsMount3Entry;
26 typedef struct NfsMount3RDump NfsMount3RDump;
27 typedef struct NfsMount3TUmnt NfsMount3TUmnt;
28 typedef struct NfsMount3RUmnt NfsMount3RUmnt;
29 typedef struct NfsMount3Export NfsMount3Export;
30 typedef struct NfsMount3TUmntall NfsMount3TUmntall;
31 typedef struct NfsMount3RUmntall NfsMount3RUmntall;
32 typedef struct NfsMount3TExport NfsMount3TExport;
33 typedef struct NfsMount3RExport NfsMount3RExport;
35 typedef enum
36 {
37 NfsMount3CallTNull,
38 NfsMount3CallRNull,
39 NfsMount3CallTMnt,
40 NfsMount3CallRMnt,
41 NfsMount3CallTDump,
42 NfsMount3CallRDump,
43 NfsMount3CallTUmnt,
44 NfsMount3CallRUmnt,
45 NfsMount3CallTUmntall,
46 NfsMount3CallRUmntall,
47 NfsMount3CallTExport,
48 NfsMount3CallRExport
49 } NfsMount3CallType;
51 struct NfsMount3TNull {
52 SunCall call;
53 };
55 struct NfsMount3RNull {
56 SunCall call;
57 };
59 struct NfsMount3TMnt {
60 SunCall call;
61 char *path;
62 };
64 struct NfsMount3RMnt {
65 SunCall call;
66 uint status;
67 uchar *handle;
68 uint len;
69 u32int *auth;
70 u32int nauth;
71 };
73 struct NfsMount3TDump {
74 SunCall call;
75 };
77 struct NfsMount3Entry {
78 char *host;
79 char *path;
80 };
82 struct NfsMount3RDump {
83 SunCall call;
84 uchar *data;
85 u32int count;
86 };
88 struct NfsMount3TUmnt {
89 SunCall call;
90 char *path;
91 };
93 struct NfsMount3RUmnt {
94 SunCall call;
95 };
97 struct NfsMount3Export {
98 char *path;
99 char **g;
100 u32int ng;
101 };
103 struct NfsMount3TUmntall {
104 SunCall call;
105 };
107 struct NfsMount3RUmntall {
108 SunCall call;
109 };
111 struct NfsMount3TExport {
112 SunCall call;
113 };
115 struct NfsMount3RExport {
116 SunCall call;
117 uchar *data;
118 u32int count;
119 };
121 uint nfsmount3exportgroupsize(uchar*);
122 uint nfsmount3exportsize(NfsMount3Export*);
123 int nfsmount3exportpack(uchar*, uchar*, uchar**, NfsMount3Export*);
124 int nfsmount3exportunpack(uchar*, uchar*, uchar**, char**, char***, NfsMount3Export*);
125 int nfsmount3entrypack(uchar*, uchar*, uchar**, NfsMount3Entry*);
126 int nfsmount3entryunpack(uchar*, uchar*, uchar**, NfsMount3Entry*);
127 uint nfsmount3entrysize(NfsMount3Entry*);
129 extern SunProg nfsmount3prog;
131 /*
132 * NFS V3; see RFC 1813
133 */
134 enum {
135 Nfs3MaxHandleSize = 64,
136 Nfs3CookieVerfSize = 8,
137 Nfs3CreateVerfSize = 8,
138 Nfs3WriteVerfSize = 8,
139 Nfs3AccessRead = 1,
140 Nfs3AccessLookup = 2,
141 Nfs3AccessModify = 4,
142 Nfs3AccessExtend = 8,
143 Nfs3AccessDelete = 16,
144 Nfs3AccessExecute = 32,
145 Nfs3FsHasLinks = 1,
146 Nfs3FsHasSymlinks = 2,
147 Nfs3FsHomogeneous = 8,
148 Nfs3FsCanSetTime = 16,
150 Nfs3Version = 3,
151 Nfs3Program = 100003
152 };
153 typedef enum
155 Nfs3Ok = 0,
156 Nfs3ErrNotOwner = 1,
157 Nfs3ErrNoEnt = 2,
158 Nfs3ErrIo = 5,
159 Nfs3ErrNxio = 6,
160 Nfs3ErrNoMem = 12,
161 Nfs3ErrAcces = 13,
162 Nfs3ErrExist = 17,
163 Nfs3ErrXDev = 18,
164 Nfs3ErrNoDev = 19,
165 Nfs3ErrNotDir = 20,
166 Nfs3ErrIsDir = 21,
167 Nfs3ErrInval = 22,
168 Nfs3ErrFbig = 27,
169 Nfs3ErrNoSpc = 28,
170 Nfs3ErrRoFs = 30,
171 Nfs3ErrMLink = 31,
172 Nfs3ErrNameTooLong = 63,
173 Nfs3ErrNotEmpty = 66,
174 Nfs3ErrDQuot = 69,
175 Nfs3ErrStale = 70,
176 Nfs3ErrRemote = 71,
177 Nfs3ErrBadHandle = 10001,
178 Nfs3ErrNotSync = 10002,
179 Nfs3ErrBadCookie = 10003,
180 Nfs3ErrNotSupp = 10004,
181 Nfs3ErrTooSmall = 10005,
182 Nfs3ErrServerFault = 10006,
183 Nfs3ErrBadType = 10007,
184 Nfs3ErrJukebox = 10008,
185 Nfs3ErrFprintNotFound = 10009,
186 Nfs3ErrAborted = 10010
187 } Nfs3Status;
189 void nfs3errstr(Nfs3Status);
191 typedef enum
193 Nfs3FileReg = 1,
194 Nfs3FileDir = 2,
195 Nfs3FileBlock = 3,
196 Nfs3FileChar = 4,
197 Nfs3FileSymlink = 5,
198 Nfs3FileSocket = 6,
199 Nfs3FileFifo = 7
200 } Nfs3FileType;
202 enum
204 Nfs3ModeSetUid = 0x800,
205 Nfs3ModeSetGid = 0x400,
206 Nfs3ModeSticky = 0x200
207 };
209 typedef enum
211 Nfs3CallTNull,
212 Nfs3CallRNull,
213 Nfs3CallTGetattr,
214 Nfs3CallRGetattr,
215 Nfs3CallTSetattr,
216 Nfs3CallRSetattr,
217 Nfs3CallTLookup,
218 Nfs3CallRLookup,
219 Nfs3CallTAccess,
220 Nfs3CallRAccess,
221 Nfs3CallTReadlink,
222 Nfs3CallRReadlink,
223 Nfs3CallTRead,
224 Nfs3CallRRead,
225 Nfs3CallTWrite,
226 Nfs3CallRWrite,
227 Nfs3CallTCreate,
228 Nfs3CallRCreate,
229 Nfs3CallTMkdir,
230 Nfs3CallRMkdir,
231 Nfs3CallTSymlink,
232 Nfs3CallRSymlink,
233 Nfs3CallTMknod,
234 Nfs3CallRMknod,
235 Nfs3CallTRemove,
236 Nfs3CallRRemove,
237 Nfs3CallTRmdir,
238 Nfs3CallRRmdir,
239 Nfs3CallTRename,
240 Nfs3CallRRename,
241 Nfs3CallTLink,
242 Nfs3CallRLink,
243 Nfs3CallTReadDir,
244 Nfs3CallRReadDir,
245 Nfs3CallTReadDirPlus,
246 Nfs3CallRReadDirPlus,
247 Nfs3CallTFsStat,
248 Nfs3CallRFsStat,
249 Nfs3CallTFsInfo,
250 Nfs3CallRFsInfo,
251 Nfs3CallTPathconf,
252 Nfs3CallRPathconf,
253 Nfs3CallTCommit,
254 Nfs3CallRCommit
255 } Nfs3CallType;
257 typedef struct Nfs3Handle Nfs3Handle;
258 typedef struct Nfs3Time Nfs3Time;
259 typedef struct Nfs3Attr Nfs3Attr;
260 typedef struct Nfs3WccAttr Nfs3WccAttr;
261 typedef struct Nfs3Wcc Nfs3Wcc;
262 typedef enum
264 Nfs3SetTimeDont = 0,
265 Nfs3SetTimeServer = 1,
266 Nfs3SetTimeClient = 2
267 } Nfs3SetTime;
269 typedef struct Nfs3SetAttr Nfs3SetAttr;
270 typedef struct Nfs3TNull Nfs3TNull;
271 typedef struct Nfs3RNull Nfs3RNull;
272 typedef struct Nfs3TGetattr Nfs3TGetattr;
273 typedef struct Nfs3RGetattr Nfs3RGetattr;
274 typedef struct Nfs3TSetattr Nfs3TSetattr;
275 typedef struct Nfs3RSetattr Nfs3RSetattr;
276 typedef struct Nfs3TLookup Nfs3TLookup;
277 typedef struct Nfs3RLookup Nfs3RLookup;
278 typedef struct Nfs3TAccess Nfs3TAccess;
279 typedef struct Nfs3RAccess Nfs3RAccess;
280 typedef struct Nfs3TReadlink Nfs3TReadlink;
281 typedef struct Nfs3RReadlink Nfs3RReadlink;
282 typedef struct Nfs3TRead Nfs3TRead;
283 typedef struct Nfs3RRead Nfs3RRead;
284 typedef enum
286 Nfs3SyncNone = 0,
287 Nfs3SyncData = 1,
288 Nfs3SyncFile = 2
289 } Nfs3Sync;
291 typedef struct Nfs3TWrite Nfs3TWrite;
292 typedef struct Nfs3RWrite Nfs3RWrite;
293 typedef enum
295 Nfs3CreateUnchecked = 0,
296 Nfs3CreateGuarded = 1,
297 Nfs3CreateExclusive = 2
298 } Nfs3Create;
300 typedef struct Nfs3TCreate Nfs3TCreate;
301 typedef struct Nfs3RCreate Nfs3RCreate;
302 typedef struct Nfs3TMkdir Nfs3TMkdir;
303 typedef struct Nfs3RMkdir Nfs3RMkdir;
304 typedef struct Nfs3TSymlink Nfs3TSymlink;
305 typedef struct Nfs3RSymlink Nfs3RSymlink;
306 typedef struct Nfs3TMknod Nfs3TMknod;
307 typedef struct Nfs3RMknod Nfs3RMknod;
308 typedef struct Nfs3TRemove Nfs3TRemove;
309 typedef struct Nfs3RRemove Nfs3RRemove;
310 typedef struct Nfs3TRmdir Nfs3TRmdir;
311 typedef struct Nfs3RRmdir Nfs3RRmdir;
312 typedef struct Nfs3TRename Nfs3TRename;
313 typedef struct Nfs3RRename Nfs3RRename;
314 typedef struct Nfs3TLink Nfs3TLink;
315 typedef struct Nfs3RLink Nfs3RLink;
316 typedef struct Nfs3TReadDir Nfs3TReadDir;
317 typedef struct Nfs3Entry Nfs3Entry;
318 typedef struct Nfs3RReadDir Nfs3RReadDir;
319 typedef struct Nfs3TReadDirPlus Nfs3TReadDirPlus;
320 typedef struct Nfs3EntryPlus Nfs3EntryPlus;
321 typedef struct Nfs3RReadDirPlus Nfs3RReadDirPlus;
322 typedef struct Nfs3TFsStat Nfs3TFsStat;
323 typedef struct Nfs3RFsStat Nfs3RFsStat;
324 typedef struct Nfs3TFsInfo Nfs3TFsInfo;
325 typedef struct Nfs3RFsInfo Nfs3RFsInfo;
326 typedef struct Nfs3TPathconf Nfs3TPathconf;
327 typedef struct Nfs3RPathconf Nfs3RPathconf;
328 typedef struct Nfs3TCommit Nfs3TCommit;
329 typedef struct Nfs3RCommit Nfs3RCommit;
331 struct Nfs3Handle {
332 uchar h[Nfs3MaxHandleSize];
333 u32int len;
334 };
336 struct Nfs3Time {
337 u32int sec;
338 u32int nsec;
339 };
341 struct Nfs3Attr {
342 Nfs3FileType type;
343 u32int mode;
344 u32int nlink;
345 u32int uid;
346 u32int gid;
347 u64int size;
348 u64int used;
349 u32int major;
350 u32int minor;
351 u64int fsid;
352 u64int fileid;
353 Nfs3Time atime;
354 Nfs3Time mtime;
355 Nfs3Time ctime;
356 };
358 struct Nfs3WccAttr {
359 u64int size;
360 Nfs3Time mtime;
361 Nfs3Time ctime;
362 };
364 struct Nfs3Wcc {
365 u1int haveWccAttr;
366 Nfs3WccAttr wccAttr;
367 u1int haveAttr;
368 Nfs3Attr attr;
369 };
371 struct Nfs3SetAttr {
372 u1int setMode;
373 u32int mode;
374 u1int setUid;
375 u32int uid;
376 u1int setGid;
377 u32int gid;
378 u1int setSize;
379 u64int size;
380 Nfs3SetTime setAtime;
381 Nfs3Time atime;
382 Nfs3SetTime setMtime;
383 Nfs3Time mtime;
384 };
386 struct Nfs3TNull {
387 SunCall call;
388 };
390 struct Nfs3RNull {
391 SunCall call;
392 };
394 struct Nfs3TGetattr {
395 SunCall call;
396 Nfs3Handle handle;
397 };
399 struct Nfs3RGetattr {
400 SunCall call;
401 Nfs3Status status;
402 Nfs3Attr attr;
403 };
405 struct Nfs3TSetattr {
406 SunCall call;
407 Nfs3Handle handle;
408 Nfs3SetAttr attr;
409 u1int checkCtime;
410 Nfs3Time ctime;
411 };
413 struct Nfs3RSetattr {
414 SunCall call;
415 Nfs3Status status;
416 Nfs3Wcc wcc;
417 };
419 struct Nfs3TLookup {
420 SunCall call;
421 Nfs3Handle handle;
422 char *name;
423 };
425 struct Nfs3RLookup {
426 SunCall call;
427 Nfs3Status status;
428 Nfs3Handle handle;
429 u1int haveAttr;
430 Nfs3Attr attr;
431 u1int haveDirAttr;
432 Nfs3Attr dirAttr;
433 };
435 struct Nfs3TAccess {
436 SunCall call;
437 Nfs3Handle handle;
438 u32int access;
439 };
441 struct Nfs3RAccess {
442 SunCall call;
443 Nfs3Status status;
444 u1int haveAttr;
445 Nfs3Attr attr;
446 u32int access;
447 };
449 struct Nfs3TReadlink {
450 SunCall call;
451 Nfs3Handle handle;
452 };
454 struct Nfs3RReadlink {
455 SunCall call;
456 Nfs3Status status;
457 u1int haveAttr;
458 Nfs3Attr attr;
459 char *data;
460 };
462 struct Nfs3TRead {
463 SunCall call;
464 Nfs3Handle handle;
465 u64int offset;
466 u32int count;
467 };
469 struct Nfs3RRead {
470 SunCall call;
471 Nfs3Status status;
472 u1int haveAttr;
473 Nfs3Attr attr;
474 u32int count;
475 u1int eof;
476 uchar *data;
477 u32int ndata;
478 };
480 struct Nfs3TWrite {
481 SunCall call;
482 Nfs3Handle handle;
483 u64int offset;
484 u32int count;
485 Nfs3Sync stable;
486 uchar *data;
487 u32int ndata;
488 };
490 struct Nfs3RWrite {
491 SunCall call;
492 Nfs3Status status;
493 Nfs3Wcc wcc;
494 u32int count;
495 Nfs3Sync committed;
496 uchar verf[Nfs3WriteVerfSize];
497 };
499 struct Nfs3TCreate {
500 SunCall call;
501 Nfs3Handle handle;
502 char *name;
503 Nfs3Create mode;
504 Nfs3SetAttr attr;
505 uchar verf[Nfs3CreateVerfSize];
506 };
508 struct Nfs3RCreate {
509 SunCall call;
510 Nfs3Status status;
511 u1int haveHandle;
512 Nfs3Handle handle;
513 u1int haveAttr;
514 Nfs3Attr attr;
515 Nfs3Wcc dirWcc;
516 };
518 struct Nfs3TMkdir {
519 SunCall call;
520 Nfs3Handle handle;
521 char *name;
522 Nfs3SetAttr attr;
523 };
525 struct Nfs3RMkdir {
526 SunCall call;
527 Nfs3Status status;
528 u1int haveHandle;
529 Nfs3Handle handle;
530 u1int haveAttr;
531 Nfs3Attr attr;
532 Nfs3Wcc dirWcc;
533 };
535 struct Nfs3TSymlink {
536 SunCall call;
537 Nfs3Handle handle;
538 char *name;
539 Nfs3SetAttr attr;
540 char *data;
541 };
543 struct Nfs3RSymlink {
544 SunCall call;
545 Nfs3Status status;
546 u1int haveHandle;
547 Nfs3Handle handle;
548 u1int haveAttr;
549 Nfs3Attr attr;
550 Nfs3Wcc dirWcc;
551 };
553 struct Nfs3TMknod {
554 SunCall call;
555 Nfs3Handle handle;
556 char *name;
557 Nfs3FileType type;
558 Nfs3SetAttr attr;
559 u32int major;
560 u32int minor;
561 };
563 struct Nfs3RMknod {
564 SunCall call;
565 Nfs3Status status;
566 u1int haveHandle;
567 Nfs3Handle handle;
568 u1int haveAttr;
569 Nfs3Attr attr;
570 Nfs3Wcc dirWcc;
571 };
573 struct Nfs3TRemove {
574 SunCall call;
575 Nfs3Handle handle;
576 char *name;
577 };
579 struct Nfs3RRemove {
580 SunCall call;
581 Nfs3Status status;
582 Nfs3Wcc wcc;
583 };
585 struct Nfs3TRmdir {
586 SunCall call;
587 Nfs3Handle handle;
588 char *name;
589 };
591 struct Nfs3RRmdir {
592 SunCall call;
593 Nfs3Status status;
594 Nfs3Wcc wcc;
595 };
597 struct Nfs3TRename {
598 SunCall call;
599 struct {
600 Nfs3Handle handle;
601 char *name;
602 } from;
603 struct {
604 Nfs3Handle handle;
605 char *name;
606 } to;
607 };
609 struct Nfs3RRename {
610 SunCall call;
611 Nfs3Status status;
612 Nfs3Wcc fromWcc;
613 Nfs3Wcc toWcc;
614 };
616 struct Nfs3TLink {
617 SunCall call;
618 Nfs3Handle handle;
619 struct {
620 Nfs3Handle handle;
621 char *name;
622 } link;
623 };
625 struct Nfs3RLink {
626 SunCall call;
627 Nfs3Status status;
628 u1int haveAttr;
629 Nfs3Attr attr;
630 Nfs3Wcc dirWcc;
631 };
633 struct Nfs3TReadDir {
634 SunCall call;
635 Nfs3Handle handle;
636 u64int cookie;
637 uchar verf[Nfs3CookieVerfSize];
638 u32int count;
639 };
641 struct Nfs3RReadDir {
642 SunCall call;
643 Nfs3Status status;
644 u1int haveAttr;
645 Nfs3Attr attr;
646 uchar verf[Nfs3CookieVerfSize];
647 uchar *data;
648 u32int count;
649 u1int eof;
650 };
652 struct Nfs3TReadDirPlus {
653 SunCall call;
654 Nfs3Handle handle;
655 u64int cookie;
656 uchar verf[Nfs3CookieVerfSize];
657 u32int dirCount;
658 u32int maxCount;
659 };
661 struct Nfs3Entry {
662 u64int fileid;
663 char *name;
664 uint namelen;
665 u64int cookie;
666 u1int haveAttr;
667 Nfs3Attr attr;
668 u1int haveHandle;
669 Nfs3Handle handle;
670 };
672 struct Nfs3RReadDirPlus {
673 SunCall call;
674 Nfs3Status status;
675 u1int haveAttr;
676 Nfs3Attr attr;
677 uchar verf[Nfs3CookieVerfSize];
678 uchar *data;
679 u32int count;
680 u1int eof;
681 };
683 struct Nfs3TFsStat {
684 SunCall call;
685 Nfs3Handle handle;
686 };
688 struct Nfs3RFsStat {
689 SunCall call;
690 Nfs3Status status;
691 u1int haveAttr;
692 Nfs3Attr attr;
693 u64int totalBytes;
694 u64int freeBytes;
695 u64int availBytes;
696 u64int totalFiles;
697 u64int freeFiles;
698 u64int availFiles;
699 u32int invarSec;
700 };
702 struct Nfs3TFsInfo {
703 SunCall call;
704 Nfs3Handle handle;
705 };
707 struct Nfs3RFsInfo {
708 SunCall call;
709 Nfs3Status status;
710 u1int haveAttr;
711 Nfs3Attr attr;
712 u32int readMax;
713 u32int readPref;
714 u32int readMult;
715 u32int writeMax;
716 u32int writePref;
717 u32int writeMult;
718 u32int readDirPref;
719 u64int maxFileSize;
720 Nfs3Time timePrec;
721 u32int flags;
722 };
724 struct Nfs3TPathconf {
725 SunCall call;
726 Nfs3Handle handle;
727 };
729 struct Nfs3RPathconf {
730 SunCall call;
731 Nfs3Status status;
732 u1int haveAttr;
733 Nfs3Attr attr;
734 u32int maxLink;
735 u32int maxName;
736 u1int noTrunc;
737 u1int chownRestricted;
738 u1int caseInsensitive;
739 u1int casePreserving;
740 };
742 struct Nfs3TCommit {
743 SunCall call;
744 Nfs3Handle handle;
745 u64int offset;
746 u32int count;
747 };
749 struct Nfs3RCommit {
750 SunCall call;
751 Nfs3Status status;
752 Nfs3Wcc wcc;
753 uchar verf[Nfs3WriteVerfSize];
754 };
756 char *nfs3statusstr(Nfs3Status);
757 char *nfs3typestr(SunCallType);
758 char *nfs3settimestr(Nfs3SetTime);
759 char *nfs3syncstr(Nfs3Sync);
761 void nfs3handleprint(Fmt*, Nfs3Handle*);
762 u32int nfs3handlesize(Nfs3Handle*);
763 int nfs3handlepack(uchar*, uchar*, uchar**, Nfs3Handle*);
764 int nfs3handleunpack(uchar*, uchar*, uchar**, Nfs3Handle*);
766 void nfs3timeprint(Fmt*, Nfs3Time*);
767 u32int nfs3timesize(Nfs3Time*);
768 int nfs3timepack(uchar*, uchar*, uchar**, Nfs3Time*);
769 int nfs3timeunpack(uchar*, uchar*, uchar**, Nfs3Time*);
771 void nfs3attrprint(Fmt*, Nfs3Attr*);
772 u32int nfs3attrsize(Nfs3Attr*);
773 int nfs3attrpack(uchar*, uchar*, uchar**, Nfs3Attr*);
774 int nfs3attrunpack(uchar*, uchar*, uchar**, Nfs3Attr*);
776 void nfs3wccattrprint(Fmt*, Nfs3WccAttr*);
777 u32int nfs3wccattrsize(Nfs3WccAttr*);
778 int nfs3wccattrpack(uchar*, uchar*, uchar**, Nfs3WccAttr*);
779 int nfs3wccattrunpack(uchar*, uchar*, uchar**, Nfs3WccAttr*);
781 void nfs3wccprint(Fmt*, Nfs3Wcc*);
782 u32int nfs3wccsize(Nfs3Wcc*);
783 int nfs3wccpack(uchar*, uchar*, uchar**, Nfs3Wcc*);
784 int nfs3wccunpack(uchar*, uchar*, uchar**, Nfs3Wcc*);
786 void nfs3setattrprint(Fmt*, Nfs3SetAttr*);
787 u32int nfs3setattrsize(Nfs3SetAttr*);
788 int nfs3setattrpack(uchar*, uchar*, uchar**, Nfs3SetAttr*);
789 int nfs3setattrunpack(uchar*, uchar*, uchar**, Nfs3SetAttr*);
791 extern SunProg nfs3prog;
793 void nfs3entryprint(Fmt*, Nfs3Entry*);
794 u32int nfs3entrysize(Nfs3Entry*);
795 int nfs3entrypack(uchar*, uchar*, uchar**, Nfs3Entry*);
796 int nfs3entryunpack(uchar*, uchar*, uchar**, Nfs3Entry*);
798 void nfs3entryplusprint(Fmt*, Nfs3Entry*);
799 u32int nfs3entryplussize(Nfs3Entry*);
800 int nfs3entrypluspack(uchar*, uchar*, uchar**, Nfs3Entry*);
801 int nfs3entryplusunpack(uchar*, uchar*, uchar**, Nfs3Entry*);