2 * NFS mounter V3; see RFC 1813
5 #pragma lib "libsunrpc.a"
6 #pragma src "/sys/src/libsunrpc"
9 NfsMount1HandleSize = 32,
10 NfsMount3MaxPathSize = 1024,
11 NfsMount3MaxNameSize = 255,
12 NfsMount3MaxHandleSize = 64,
13 NfsMount3Program = 100005,
15 NfsMount1Program = 100005,
18 typedef struct NfsMount3TNull NfsMount3TNull;
19 typedef struct NfsMount3RNull NfsMount3RNull;
20 typedef struct NfsMount3TMnt NfsMount3TMnt;
21 typedef struct NfsMount3RMnt NfsMount3RMnt;
22 typedef struct NfsMount3TDump NfsMount3TDump;
23 typedef struct NfsMount3Entry NfsMount3Entry;
24 typedef struct NfsMount3RDump NfsMount3RDump;
25 typedef struct NfsMount3TUmnt NfsMount3TUmnt;
26 typedef struct NfsMount3RUmnt NfsMount3RUmnt;
27 typedef struct NfsMount3Export NfsMount3Export;
28 typedef struct NfsMount3TUmntall NfsMount3TUmntall;
29 typedef struct NfsMount3RUmntall NfsMount3RUmntall;
30 typedef struct NfsMount3TExport NfsMount3TExport;
31 typedef struct NfsMount3RExport NfsMount3RExport;
43 NfsMount3CallTUmntall,
44 NfsMount3CallRUmntall,
49 typedef struct NfsMount3Call NfsMount3Call;
50 struct NfsMount3Call {
52 NfsMount3CallType type;
55 struct NfsMount3TNull {
59 struct NfsMount3RNull {
63 struct NfsMount3TMnt {
68 struct NfsMount3RMnt {
77 struct NfsMount3TDump {
81 struct NfsMount3Entry {
86 struct NfsMount3RDump {
92 struct NfsMount3TUmnt {
97 struct NfsMount3RUmnt {
101 struct NfsMount3Export {
107 struct NfsMount3TUmntall {
111 struct NfsMount3RUmntall {
115 struct NfsMount3TExport {
119 struct NfsMount3RExport {
125 uint nfsMount3ExportGroupSize(uchar*);
126 uint nfsMount3ExportSize(NfsMount3Export*);
127 int nfsMount3ExportPack(uchar*, uchar*, uchar**, NfsMount3Export*);
128 int nfsMount3ExportUnpack(uchar*, uchar*, uchar**, char**, char***, NfsMount3Export*);
129 int nfsMount3EntryPack(uchar*, uchar*, uchar**, NfsMount3Entry*);
130 int nfsMount3EntryUnpack(uchar*, uchar*, uchar**, NfsMount3Entry*);
131 uint nfsMount3EntrySize(NfsMount3Entry*);
133 extern SunProg nfsMount3Prog;
136 * NFS V3; see RFC 1813
139 Nfs3MaxHandleSize = 64,
140 Nfs3CookieVerfSize = 8,
141 Nfs3CreateVerfSize = 8,
142 Nfs3WriteVerfSize = 8,
144 Nfs3AccessLookup = 2,
145 Nfs3AccessModify = 4,
146 Nfs3AccessExtend = 8,
147 Nfs3AccessDelete = 16,
148 Nfs3AccessExecute = 32,
150 Nfs3FsHasSymlinks = 2,
151 Nfs3FsHomogeneous = 8,
152 Nfs3FsCanSetTime = 16,
155 Nfs3Program = 100003,
176 Nfs3ErrNameTooLong = 63,
177 Nfs3ErrNotEmpty = 66,
181 Nfs3ErrBadHandle = 10001,
182 Nfs3ErrNotSync = 10002,
183 Nfs3ErrBadCookie = 10003,
184 Nfs3ErrNotSupp = 10004,
185 Nfs3ErrTooSmall = 10005,
186 Nfs3ErrServerFault = 10006,
187 Nfs3ErrBadType = 10007,
188 Nfs3ErrJukebox = 10008,
189 Nfs3ErrFprintNotFound = 10009,
190 Nfs3ErrAborted = 10010,
193 void nfs3Errstr(Nfs3Status);
208 Nfs3ModeSetUid = 0x800,
209 Nfs3ModeSetGid = 0x400,
210 Nfs3ModeSticky = 0x200,
249 Nfs3CallTReadDirPlus,
250 Nfs3CallRReadDirPlus,
261 typedef struct Nfs3Call Nfs3Call;
262 typedef struct Nfs3Handle Nfs3Handle;
263 typedef struct Nfs3Time Nfs3Time;
264 typedef struct Nfs3Attr Nfs3Attr;
265 typedef struct Nfs3WccAttr Nfs3WccAttr;
266 typedef struct Nfs3Wcc Nfs3Wcc;
270 Nfs3SetTimeServer = 1,
271 Nfs3SetTimeClient = 2,
274 typedef struct Nfs3SetAttr Nfs3SetAttr;
275 typedef struct Nfs3TNull Nfs3TNull;
276 typedef struct Nfs3RNull Nfs3RNull;
277 typedef struct Nfs3TGetattr Nfs3TGetattr;
278 typedef struct Nfs3RGetattr Nfs3RGetattr;
279 typedef struct Nfs3TSetattr Nfs3TSetattr;
280 typedef struct Nfs3RSetattr Nfs3RSetattr;
281 typedef struct Nfs3TLookup Nfs3TLookup;
282 typedef struct Nfs3RLookup Nfs3RLookup;
283 typedef struct Nfs3TAccess Nfs3TAccess;
284 typedef struct Nfs3RAccess Nfs3RAccess;
285 typedef struct Nfs3TReadlink Nfs3TReadlink;
286 typedef struct Nfs3RReadlink Nfs3RReadlink;
287 typedef struct Nfs3TRead Nfs3TRead;
288 typedef struct Nfs3RRead Nfs3RRead;
296 typedef struct Nfs3TWrite Nfs3TWrite;
297 typedef struct Nfs3RWrite Nfs3RWrite;
300 Nfs3CreateUnchecked = 0,
301 Nfs3CreateGuarded = 1,
302 Nfs3CreateExclusive = 2,
305 typedef struct Nfs3TCreate Nfs3TCreate;
306 typedef struct Nfs3RCreate Nfs3RCreate;
307 typedef struct Nfs3TMkdir Nfs3TMkdir;
308 typedef struct Nfs3RMkdir Nfs3RMkdir;
309 typedef struct Nfs3TSymlink Nfs3TSymlink;
310 typedef struct Nfs3RSymlink Nfs3RSymlink;
311 typedef struct Nfs3TMknod Nfs3TMknod;
312 typedef struct Nfs3RMknod Nfs3RMknod;
313 typedef struct Nfs3TRemove Nfs3TRemove;
314 typedef struct Nfs3RRemove Nfs3RRemove;
315 typedef struct Nfs3TRmdir Nfs3TRmdir;
316 typedef struct Nfs3RRmdir Nfs3RRmdir;
317 typedef struct Nfs3TRename Nfs3TRename;
318 typedef struct Nfs3RRename Nfs3RRename;
319 typedef struct Nfs3TLink Nfs3TLink;
320 typedef struct Nfs3RLink Nfs3RLink;
321 typedef struct Nfs3TReadDir Nfs3TReadDir;
322 typedef struct Nfs3Entry Nfs3Entry;
323 typedef struct Nfs3RReadDir Nfs3RReadDir;
324 typedef struct Nfs3TReadDirPlus Nfs3TReadDirPlus;
325 typedef struct Nfs3EntryPlus Nfs3EntryPlus;
326 typedef struct Nfs3RReadDirPlus Nfs3RReadDirPlus;
327 typedef struct Nfs3TFsStat Nfs3TFsStat;
328 typedef struct Nfs3RFsStat Nfs3RFsStat;
329 typedef struct Nfs3TFsInfo Nfs3TFsInfo;
330 typedef struct Nfs3RFsInfo Nfs3RFsInfo;
331 typedef struct Nfs3TPathconf Nfs3TPathconf;
332 typedef struct Nfs3RPathconf Nfs3RPathconf;
333 typedef struct Nfs3TCommit Nfs3TCommit;
334 typedef struct Nfs3RCommit Nfs3RCommit;
342 uchar h[Nfs3MaxHandleSize];
390 Nfs3SetTime setAtime;
392 Nfs3SetTime setMtime;
404 struct Nfs3TGetattr {
409 struct Nfs3RGetattr {
415 struct Nfs3TSetattr {
423 struct Nfs3RSetattr {
459 struct Nfs3TReadlink {
464 struct Nfs3RReadlink {
506 uchar verf[Nfs3WriteVerfSize];
515 uchar verf[Nfs3CreateVerfSize];
545 struct Nfs3TSymlink {
553 struct Nfs3RSymlink {
643 struct Nfs3TReadDir {
647 uchar verf[Nfs3CookieVerfSize];
651 struct Nfs3RReadDir {
656 uchar verf[Nfs3CookieVerfSize];
662 struct Nfs3TReadDirPlus {
666 uchar verf[Nfs3CookieVerfSize];
681 struct Nfs3RReadDirPlus {
686 uchar verf[Nfs3CookieVerfSize];
733 struct Nfs3TPathconf {
738 struct Nfs3RPathconf {
746 u1int chownRestricted;
747 u1int caseInsensitive;
748 u1int casePreserving;
762 uchar verf[Nfs3WriteVerfSize];
765 char *nfs3StatusStr(Nfs3Status);
766 char *nfs3TypeStr(Nfs3CallType);
767 char *nfs3SetTimeStr(Nfs3SetTime);
768 char *nfs3SyncStr(Nfs3Sync);
770 void nfs3HandlePrint(Fmt*, Nfs3Handle*);
771 u32int nfs3HandleSize(Nfs3Handle*);
772 int nfs3HandlePack(uchar*, uchar*, uchar**, Nfs3Handle*);
773 int nfs3HandleUnpack(uchar*, uchar*, uchar**, Nfs3Handle*);
775 void nfs3TimePrint(Fmt*, Nfs3Time*);
776 u32int nfs3TimeSize(Nfs3Time*);
777 int nfs3TimePack(uchar*, uchar*, uchar**, Nfs3Time*);
778 int nfs3TimeUnpack(uchar*, uchar*, uchar**, Nfs3Time*);
780 void nfs3AttrPrint(Fmt*, Nfs3Attr*);
781 u32int nfs3AttrSize(Nfs3Attr*);
782 int nfs3AttrPack(uchar*, uchar*, uchar**, Nfs3Attr*);
783 int nfs3AttrUnpack(uchar*, uchar*, uchar**, Nfs3Attr*);
785 void nfs3WccAttrPrint(Fmt*, Nfs3WccAttr*);
786 u32int nfs3WccAttrSize(Nfs3WccAttr*);
787 int nfs3WccAttrPack(uchar*, uchar*, uchar**, Nfs3WccAttr*);
788 int nfs3WccAttrUnpack(uchar*, uchar*, uchar**, Nfs3WccAttr*);
790 void nfs3WccPrint(Fmt*, Nfs3Wcc*);
791 u32int nfs3WccSize(Nfs3Wcc*);
792 int nfs3WccPack(uchar*, uchar*, uchar**, Nfs3Wcc*);
793 int nfs3WccUnpack(uchar*, uchar*, uchar**, Nfs3Wcc*);
795 void nfs3SetAttrPrint(Fmt*, Nfs3SetAttr*);
796 u32int nfs3SetAttrSize(Nfs3SetAttr*);
797 int nfs3SetAttrPack(uchar*, uchar*, uchar**, Nfs3SetAttr*);
798 int nfs3SetAttrUnpack(uchar*, uchar*, uchar**, Nfs3SetAttr*);
800 extern SunProg nfs3Prog;
802 void nfs3EntryPrint(Fmt*, Nfs3Entry*);
803 u32int nfs3EntrySize(Nfs3Entry*);
804 int nfs3EntryPack(uchar*, uchar*, uchar**, Nfs3Entry*);
805 int nfs3EntryUnpack(uchar*, uchar*, uchar**, Nfs3Entry*);
807 void nfs3EntryPlusPrint(Fmt*, Nfs3Entry*);
808 u32int nfs3EntryPlusSize(Nfs3Entry*);
809 int nfs3EntryPlusPack(uchar*, uchar*, uchar**, Nfs3Entry*);
810 int nfs3EntryPlusUnpack(uchar*, uchar*, uchar**, Nfs3Entry*);