/* * This file is part of the UCB release of Plan 9. It is subject to the license * terms in the LICENSE file found in the top-level directory of this * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No * part of the UCB release of Plan 9, including this file, may be copied, * modified, propagated, or distributed except according to the terms contained * in the LICENSE file. */ /* * NFS mounter V3; see RFC 1813 */ #pragma lib "libsunrpc.a"#pragma src "/sys/src/libsunrpc" enum { NfsMount1HandleSize = 32, NfsMount3MaxPathSize = 1024, NfsMount3MaxNameSize = 255, NfsMount3MaxHandleSize = 64, NfsMount3Program = 100005, NfsMount3Version = 3, NfsMount1Program = 100005, NfsMount1Version = 1};typedef struct NfsMount3TNull NfsMount3TNull;typedef struct NfsMount3RNull NfsMount3RNull;typedef struct NfsMount3TMnt NfsMount3TMnt;typedef struct NfsMount3RMnt NfsMount3RMnt;typedef struct NfsMount3TDump NfsMount3TDump;typedef struct NfsMount3Entry NfsMount3Entry;typedef struct NfsMount3RDump NfsMount3RDump;typedef struct NfsMount3TUmnt NfsMount3TUmnt;typedef struct NfsMount3RUmnt NfsMount3RUmnt;typedef struct NfsMount3Export NfsMount3Export;typedef struct NfsMount3TUmntall NfsMount3TUmntall;typedef struct NfsMount3RUmntall NfsMount3RUmntall;typedef struct NfsMount3TExport NfsMount3TExport;typedef struct NfsMount3RExport NfsMount3RExport; typedef enum{ NfsMount3CallTNull, NfsMount3CallRNull, NfsMount3CallTMnt, NfsMount3CallRMnt, NfsMount3CallTDump, NfsMount3CallRDump, NfsMount3CallTUmnt, NfsMount3CallRUmnt, NfsMount3CallTUmntall, NfsMount3CallRUmntall, NfsMount3CallTExport, NfsMount3CallRExport} NfsMount3CallType; typedef struct NfsMount3Call NfsMount3Call;struct NfsMount3Call { SunRpc rpc; NfsMount3CallType type;}; struct NfsMount3TNull { NfsMount3Call call;}; struct NfsMount3RNull { NfsMount3Call call;}; struct NfsMount3TMnt { NfsMount3Call call; char *path;}; struct NfsMount3RMnt { NfsMount3Call call; uint status; uchar *handle; uint len; u32int *auth; u32int nauth;}; struct NfsMount3TDump { NfsMount3Call call;}; struct NfsMount3Entry { char *host; char *path;}; struct NfsMount3RDump { NfsMount3Call call; uchar *data; u32int count;}; struct NfsMount3TUmnt { NfsMount3Call call; char *path;}; struct NfsMount3RUmnt { NfsMount3Call call;}; struct NfsMount3Export { char *path; char **g; u32int ng;}; struct NfsMount3TUmntall { NfsMount3Call call;}; struct NfsMount3RUmntall { NfsMount3Call call;}; struct NfsMount3TExport { NfsMount3Call call;}; struct NfsMount3RExport { NfsMount3Call call; uchar *data; u32int count;}; uint nfsMount3ExportGroupSize(uchar*);uint nfsMount3ExportSize(NfsMount3Export*);int nfsMount3ExportPack(uchar*, uchar*, uchar**, NfsMount3Export*);int nfsMount3ExportUnpack(uchar*, uchar*, uchar**, char**, char***, NfsMount3Export*);int nfsMount3EntryPack(uchar*, uchar*, uchar**, NfsMount3Entry*);int nfsMount3EntryUnpack(uchar*, uchar*, uchar**, NfsMount3Entry*);uint nfsMount3EntrySize(NfsMount3Entry*); extern SunProg nfsMount3Prog; /* * NFS V3; see RFC 1813 */enum { Nfs3MaxHandleSize = 64, Nfs3CookieVerfSize = 8, Nfs3CreateVerfSize = 8, Nfs3WriteVerfSize = 8, Nfs3AccessRead = 1, Nfs3AccessLookup = 2, Nfs3AccessModify = 4, Nfs3AccessExtend = 8, Nfs3AccessDelete = 16, Nfs3AccessExecute = 32, Nfs3FsHasLinks = 1, Nfs3FsHasSymlinks = 2, Nfs3FsHomogeneous = 8, Nfs3FsCanSetTime = 16, Nfs3Version = 3, Nfs3Program = 100003,};typedef enum{ Nfs3Ok = 0, Nfs3ErrNotOwner = 1, Nfs3ErrNoEnt = 2, Nfs3ErrIo = 5, Nfs3ErrNxio = 6, Nfs3ErrNoMem = 12, Nfs3ErrAcces = 13, Nfs3ErrExist = 17, Nfs3ErrXDev = 18, Nfs3ErrNoDev = 19, Nfs3ErrNotDir = 20, Nfs3ErrIsDir = 21, Nfs3ErrInval = 22, Nfs3ErrFbig = 27, Nfs3ErrNoSpc = 28, Nfs3ErrRoFs = 30, Nfs3ErrMLink = 31, Nfs3ErrNameTooLong = 63, Nfs3ErrNotEmpty = 66, Nfs3ErrDQuot = 69, Nfs3ErrStale = 70, Nfs3ErrRemote = 71, Nfs3ErrBadHandle = 10001, Nfs3ErrNotSync = 10002, Nfs3ErrBadCookie = 10003, Nfs3ErrNotSupp = 10004, Nfs3ErrTooSmall = 10005, Nfs3ErrServerFault = 10006, Nfs3ErrBadType = 10007, Nfs3ErrJukebox = 10008, Nfs3ErrFprintNotFound = 10009, Nfs3ErrAborted = 10010,} Nfs3Status; void nfs3Errstr(Nfs3Status); typedef enum{ Nfs3FileReg = 1, Nfs3FileDir = 2, Nfs3FileBlock = 3, Nfs3FileChar = 4, Nfs3FileSymlink = 5, Nfs3FileSocket = 6, Nfs3FileFifo = 7,} Nfs3FileType; enum{ Nfs3ModeSetUid = 0x800, Nfs3ModeSetGid = 0x400, Nfs3ModeSticky = 0x200,}; typedef enum{ Nfs3CallTNull, Nfs3CallRNull, Nfs3CallTGetattr, Nfs3CallRGetattr, Nfs3CallTSetattr, Nfs3CallRSetattr, Nfs3CallTLookup, Nfs3CallRLookup, Nfs3CallTAccess, Nfs3CallRAccess, Nfs3CallTReadlink, Nfs3CallRReadlink, Nfs3CallTRead, Nfs3CallRRead, Nfs3CallTWrite, Nfs3CallRWrite, Nfs3CallTCreate, Nfs3CallRCreate, Nfs3CallTMkdir, Nfs3CallRMkdir, Nfs3CallTSymlink, Nfs3CallRSymlink, Nfs3CallTMknod, Nfs3CallRMknod, Nfs3CallTRemove, Nfs3CallRRemove, Nfs3CallTRmdir, Nfs3CallRRmdir, Nfs3CallTRename, Nfs3CallRRename, Nfs3CallTLink, Nfs3CallRLink, Nfs3CallTReadDir, Nfs3CallRReadDir, Nfs3CallTReadDirPlus, Nfs3CallRReadDirPlus, Nfs3CallTFsStat, Nfs3CallRFsStat, Nfs3CallTFsInfo, Nfs3CallRFsInfo, Nfs3CallTPathconf, Nfs3CallRPathconf, Nfs3CallTCommit, Nfs3CallRCommit,} Nfs3CallType; typedef struct Nfs3Call Nfs3Call;typedef struct Nfs3Handle Nfs3Handle;typedef struct Nfs3Time Nfs3Time;typedef struct Nfs3Attr Nfs3Attr;typedef struct Nfs3WccAttr Nfs3WccAttr;typedef struct Nfs3Wcc Nfs3Wcc;typedef enum{ Nfs3SetTimeDont = 0, Nfs3SetTimeServer = 1, Nfs3SetTimeClient = 2,} Nfs3SetTime; typedef struct Nfs3SetAttr Nfs3SetAttr;typedef struct Nfs3TNull Nfs3TNull;typedef struct Nfs3RNull Nfs3RNull;typedef struct Nfs3TGetattr Nfs3TGetattr;typedef struct Nfs3RGetattr Nfs3RGetattr;typedef struct Nfs3TSetattr Nfs3TSetattr;typedef struct Nfs3RSetattr Nfs3RSetattr;typedef struct Nfs3TLookup Nfs3TLookup;typedef struct Nfs3RLookup Nfs3RLookup;typedef struct Nfs3TAccess Nfs3TAccess;typedef struct Nfs3RAccess Nfs3RAccess;typedef struct Nfs3TReadlink Nfs3TReadlink;typedef struct Nfs3RReadlink Nfs3RReadlink;typedef struct Nfs3TRead Nfs3TRead;typedef struct Nfs3RRead Nfs3RRead;typedef enum{ Nfs3SyncNone = 0, Nfs3SyncData = 1, Nfs3SyncFile = 2,} Nfs3Sync; typedef struct Nfs3TWrite Nfs3TWrite;typedef struct Nfs3RWrite Nfs3RWrite;typedef enum{ Nfs3CreateUnchecked = 0, Nfs3CreateGuarded = 1, Nfs3CreateExclusive = 2,} Nfs3Create; typedef struct Nfs3TCreate Nfs3TCreate;typedef struct Nfs3RCreate Nfs3RCreate;typedef struct Nfs3TMkdir Nfs3TMkdir;typedef struct Nfs3RMkdir Nfs3RMkdir;typedef struct Nfs3TSymlink Nfs3TSymlink;typedef struct Nfs3RSymlink Nfs3RSymlink;typedef struct Nfs3TMknod Nfs3TMknod;typedef struct Nfs3RMknod Nfs3RMknod;typedef struct Nfs3TRemove Nfs3TRemove;typedef struct Nfs3RRemove Nfs3RRemove;typedef struct Nfs3TRmdir Nfs3TRmdir;typedef struct Nfs3RRmdir Nfs3RRmdir;typedef struct Nfs3TRename Nfs3TRename;typedef struct Nfs3RRename Nfs3RRename;typedef struct Nfs3TLink Nfs3TLink;typedef struct Nfs3RLink Nfs3RLink;typedef struct Nfs3TReadDir Nfs3TReadDir;typedef struct Nfs3Entry Nfs3Entry;typedef struct Nfs3RReadDir Nfs3RReadDir;typedef struct Nfs3TReadDirPlus Nfs3TReadDirPlus;typedef struct Nfs3EntryPlus Nfs3EntryPlus;typedef struct Nfs3RReadDirPlus Nfs3RReadDirPlus;typedef struct Nfs3TFsStat Nfs3TFsStat;typedef struct Nfs3RFsStat Nfs3RFsStat;typedef struct Nfs3TFsInfo Nfs3TFsInfo;typedef struct Nfs3RFsInfo Nfs3RFsInfo;typedef struct Nfs3TPathconf Nfs3TPathconf;typedef struct Nfs3RPathconf Nfs3RPathconf;typedef struct Nfs3TCommit Nfs3TCommit;typedef struct Nfs3RCommit Nfs3RCommit; struct Nfs3Call { SunRpc rpc; Nfs3CallType type;}; struct Nfs3Handle { uchar h[Nfs3MaxHandleSize]; u32int len;}; struct Nfs3Time { u32int sec; u32int nsec;}; struct Nfs3Attr { Nfs3FileType type; u32int mode; u32int nlink; u32int uid; u32int gid; u64int size; u64int used; u32int major; u32int minor; u64int fsid; u64int fileid; Nfs3Time atime; Nfs3Time mtime; Nfs3Time ctime;}; struct Nfs3WccAttr { u64int size; Nfs3Time mtime; Nfs3Time ctime;}; struct Nfs3Wcc { u1int haveWccAttr; Nfs3WccAttr wccAttr; u1int haveAttr; Nfs3Attr attr;}; struct Nfs3SetAttr { u1int setMode; u32int mode; u1int setUid; u32int uid; u1int setGid; u32int gid; u1int setSize; u64int size; Nfs3SetTime setAtime; Nfs3Time atime; Nfs3SetTime setMtime; Nfs3Time mtime;}; struct Nfs3TNull { Nfs3Call call;}; struct Nfs3RNull { Nfs3Call call;}; struct Nfs3TGetattr { Nfs3Call call; Nfs3Handle handle;}; struct Nfs3RGetattr { Nfs3Call call; Nfs3Status status; Nfs3Attr attr;}; struct Nfs3TSetattr { Nfs3Call call; Nfs3Handle handle; Nfs3SetAttr attr; u1int checkCtime; Nfs3Time ctime;}; struct Nfs3RSetattr { Nfs3Call call; Nfs3Status status; Nfs3Wcc wcc;}; struct Nfs3TLookup { Nfs3Call call; Nfs3Handle handle; char *name;}; struct Nfs3RLookup { Nfs3Call call; Nfs3Status status; Nfs3Handle handle; u1int haveAttr; Nfs3Attr attr; u1int haveDirAttr; Nfs3Attr dirAttr;}; struct Nfs3TAccess { Nfs3Call call; Nfs3Handle handle; u32int access;}; struct Nfs3RAccess { Nfs3Call call; Nfs3Status status; u1int haveAttr; Nfs3Attr attr; u32int access;}; struct Nfs3TReadlink { Nfs3Call call; Nfs3Handle handle;}; struct Nfs3RReadlink { Nfs3Call call; Nfs3Status status; u1int haveAttr; Nfs3Attr attr; char *data;}; struct Nfs3TRead { Nfs3Call call; Nfs3Handle handle; u64int offset; u32int count;}; struct Nfs3RRead { Nfs3Call call; Nfs3Status status; u1int haveAttr; Nfs3Attr attr; u32int count; u1int eof; uchar *data; u32int ndata;}; struct Nfs3TWrite { Nfs3Call call;Lines 1–500 of 820. Load more
/* * This file is part of the UCB release of Plan 9. It is subject to the license * terms in the LICENSE file found in the top-level directory of this * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No * part of the UCB release of Plan 9, including this file, may be copied, * modified, propagated, or distributed except according to the terms contained * in the LICENSE file. */ /* * NFS mounter V3; see RFC 1813 */ #pragma lib "libsunrpc.a" #pragma src "/sys/src/libsunrpc" enum { NfsMount1HandleSize = 32, NfsMount3MaxPathSize = 1024, NfsMount3MaxNameSize = 255, NfsMount3MaxHandleSize = 64, NfsMount3Program = 100005, NfsMount3Version = 3, NfsMount1Program = 100005, NfsMount1Version = 1 }; typedef struct NfsMount3TNull NfsMount3TNull; typedef struct NfsMount3RNull NfsMount3RNull; typedef struct NfsMount3TMnt NfsMount3TMnt; typedef struct NfsMount3RMnt NfsMount3RMnt; typedef struct NfsMount3TDump NfsMount3TDump; typedef struct NfsMount3Entry NfsMount3Entry; typedef struct NfsMount3RDump NfsMount3RDump; typedef struct NfsMount3TUmnt NfsMount3TUmnt; typedef struct NfsMount3RUmnt NfsMount3RUmnt; typedef struct NfsMount3Export NfsMount3Export; typedef struct NfsMount3TUmntall NfsMount3TUmntall; typedef struct NfsMount3RUmntall NfsMount3RUmntall; typedef struct NfsMount3TExport NfsMount3TExport; typedef struct NfsMount3RExport NfsMount3RExport; typedef enum { NfsMount3CallTNull, NfsMount3CallRNull, NfsMount3CallTMnt, NfsMount3CallRMnt, NfsMount3CallTDump, NfsMount3CallRDump, NfsMount3CallTUmnt, NfsMount3CallRUmnt, NfsMount3CallTUmntall, NfsMount3CallRUmntall, NfsMount3CallTExport, NfsMount3CallRExport } NfsMount3CallType; typedef struct NfsMount3Call NfsMount3Call; struct NfsMount3Call { SunRpc rpc; NfsMount3CallType type; }; struct NfsMount3TNull { NfsMount3Call call; }; struct NfsMount3RNull { NfsMount3Call call; }; struct NfsMount3TMnt { NfsMount3Call call; char *path; }; struct NfsMount3RMnt { NfsMount3Call call; uint status; uchar *handle; uint len; u32int *auth; u32int nauth; }; struct NfsMount3TDump { NfsMount3Call call; }; struct NfsMount3Entry { char *host; char *path; }; struct NfsMount3RDump { NfsMount3Call call; uchar *data; u32int count; }; struct NfsMount3TUmnt { NfsMount3Call call; char *path; }; struct NfsMount3RUmnt { NfsMount3Call call; }; struct NfsMount3Export { char *path; char **g; u32int ng; }; struct NfsMount3TUmntall { NfsMount3Call call; }; struct NfsMount3RUmntall { NfsMount3Call call; }; struct NfsMount3TExport { NfsMount3Call call; }; struct NfsMount3RExport { NfsMount3Call call; uchar *data; u32int count; }; uint nfsMount3ExportGroupSize(uchar*); uint nfsMount3ExportSize(NfsMount3Export*); int nfsMount3ExportPack(uchar*, uchar*, uchar**, NfsMount3Export*); int nfsMount3ExportUnpack(uchar*, uchar*, uchar**, char**, char***, NfsMount3Export*); int nfsMount3EntryPack(uchar*, uchar*, uchar**, NfsMount3Entry*); int nfsMount3EntryUnpack(uchar*, uchar*, uchar**, NfsMount3Entry*); uint nfsMount3EntrySize(NfsMount3Entry*); extern SunProg nfsMount3Prog; /* * NFS V3; see RFC 1813 */ enum { Nfs3MaxHandleSize = 64, Nfs3CookieVerfSize = 8, Nfs3CreateVerfSize = 8, Nfs3WriteVerfSize = 8, Nfs3AccessRead = 1, Nfs3AccessLookup = 2, Nfs3AccessModify = 4, Nfs3AccessExtend = 8, Nfs3AccessDelete = 16, Nfs3AccessExecute = 32, Nfs3FsHasLinks = 1, Nfs3FsHasSymlinks = 2, Nfs3FsHomogeneous = 8, Nfs3FsCanSetTime = 16, Nfs3Version = 3, Nfs3Program = 100003, }; typedef enum { Nfs3Ok = 0, Nfs3ErrNotOwner = 1, Nfs3ErrNoEnt = 2, Nfs3ErrIo = 5, Nfs3ErrNxio = 6, Nfs3ErrNoMem = 12, Nfs3ErrAcces = 13, Nfs3ErrExist = 17, Nfs3ErrXDev = 18, Nfs3ErrNoDev = 19, Nfs3ErrNotDir = 20, Nfs3ErrIsDir = 21, Nfs3ErrInval = 22, Nfs3ErrFbig = 27, Nfs3ErrNoSpc = 28, Nfs3ErrRoFs = 30, Nfs3ErrMLink = 31, Nfs3ErrNameTooLong = 63, Nfs3ErrNotEmpty = 66, Nfs3ErrDQuot = 69, Nfs3ErrStale = 70, Nfs3ErrRemote = 71, Nfs3ErrBadHandle = 10001, Nfs3ErrNotSync = 10002, Nfs3ErrBadCookie = 10003, Nfs3ErrNotSupp = 10004, Nfs3ErrTooSmall = 10005, Nfs3ErrServerFault = 10006, Nfs3ErrBadType = 10007, Nfs3ErrJukebox = 10008, Nfs3ErrFprintNotFound = 10009, Nfs3ErrAborted = 10010, } Nfs3Status; void nfs3Errstr(Nfs3Status); typedef enum { Nfs3FileReg = 1, Nfs3FileDir = 2, Nfs3FileBlock = 3, Nfs3FileChar = 4, Nfs3FileSymlink = 5, Nfs3FileSocket = 6, Nfs3FileFifo = 7, } Nfs3FileType; enum { Nfs3ModeSetUid = 0x800, Nfs3ModeSetGid = 0x400, Nfs3ModeSticky = 0x200, }; typedef enum { Nfs3CallTNull, Nfs3CallRNull, Nfs3CallTGetattr, Nfs3CallRGetattr, Nfs3CallTSetattr, Nfs3CallRSetattr, Nfs3CallTLookup, Nfs3CallRLookup, Nfs3CallTAccess, Nfs3CallRAccess, Nfs3CallTReadlink, Nfs3CallRReadlink, Nfs3CallTRead, Nfs3CallRRead, Nfs3CallTWrite, Nfs3CallRWrite, Nfs3CallTCreate, Nfs3CallRCreate, Nfs3CallTMkdir, Nfs3CallRMkdir, Nfs3CallTSymlink, Nfs3CallRSymlink, Nfs3CallTMknod, Nfs3CallRMknod, Nfs3CallTRemove, Nfs3CallRRemove, Nfs3CallTRmdir, Nfs3CallRRmdir, Nfs3CallTRename, Nfs3CallRRename, Nfs3CallTLink, Nfs3CallRLink, Nfs3CallTReadDir, Nfs3CallRReadDir, Nfs3CallTReadDirPlus, Nfs3CallRReadDirPlus, Nfs3CallTFsStat, Nfs3CallRFsStat, Nfs3CallTFsInfo, Nfs3CallRFsInfo, Nfs3CallTPathconf, Nfs3CallRPathconf, Nfs3CallTCommit, Nfs3CallRCommit, } Nfs3CallType; typedef struct Nfs3Call Nfs3Call; typedef struct Nfs3Handle Nfs3Handle; typedef struct Nfs3Time Nfs3Time; typedef struct Nfs3Attr Nfs3Attr; typedef struct Nfs3WccAttr Nfs3WccAttr; typedef struct Nfs3Wcc Nfs3Wcc; typedef enum { Nfs3SetTimeDont = 0, Nfs3SetTimeServer = 1, Nfs3SetTimeClient = 2, } Nfs3SetTime; typedef struct Nfs3SetAttr Nfs3SetAttr; typedef struct Nfs3TNull Nfs3TNull; typedef struct Nfs3RNull Nfs3RNull; typedef struct Nfs3TGetattr Nfs3TGetattr; typedef struct Nfs3RGetattr Nfs3RGetattr; typedef struct Nfs3TSetattr Nfs3TSetattr; typedef struct Nfs3RSetattr Nfs3RSetattr; typedef struct Nfs3TLookup Nfs3TLookup; typedef struct Nfs3RLookup Nfs3RLookup; typedef struct Nfs3TAccess Nfs3TAccess; typedef struct Nfs3RAccess Nfs3RAccess; typedef struct Nfs3TReadlink Nfs3TReadlink; typedef struct Nfs3RReadlink Nfs3RReadlink; typedef struct Nfs3TRead Nfs3TRead; typedef struct Nfs3RRead Nfs3RRead; typedef enum { Nfs3SyncNone = 0, Nfs3SyncData = 1, Nfs3SyncFile = 2, } Nfs3Sync; typedef struct Nfs3TWrite Nfs3TWrite; typedef struct Nfs3RWrite Nfs3RWrite; typedef enum { Nfs3CreateUnchecked = 0, Nfs3CreateGuarded = 1, Nfs3CreateExclusive = 2, } Nfs3Create; typedef struct Nfs3TCreate Nfs3TCreate; typedef struct Nfs3RCreate Nfs3RCreate; typedef struct Nfs3TMkdir Nfs3TMkdir; typedef struct Nfs3RMkdir Nfs3RMkdir; typedef struct Nfs3TSymlink Nfs3TSymlink; typedef struct Nfs3RSymlink Nfs3RSymlink; typedef struct Nfs3TMknod Nfs3TMknod; typedef struct Nfs3RMknod Nfs3RMknod; typedef struct Nfs3TRemove Nfs3TRemove; typedef struct Nfs3RRemove Nfs3RRemove; typedef struct Nfs3TRmdir Nfs3TRmdir; typedef struct Nfs3RRmdir Nfs3RRmdir; typedef struct Nfs3TRename Nfs3TRename; typedef struct Nfs3RRename Nfs3RRename; typedef struct Nfs3TLink Nfs3TLink; typedef struct Nfs3RLink Nfs3RLink; typedef struct Nfs3TReadDir Nfs3TReadDir; typedef struct Nfs3Entry Nfs3Entry; typedef struct Nfs3RReadDir Nfs3RReadDir; typedef struct Nfs3TReadDirPlus Nfs3TReadDirPlus; typedef struct Nfs3EntryPlus Nfs3EntryPlus; typedef struct Nfs3RReadDirPlus Nfs3RReadDirPlus; typedef struct Nfs3TFsStat Nfs3TFsStat; typedef struct Nfs3RFsStat Nfs3RFsStat; typedef struct Nfs3TFsInfo Nfs3TFsInfo; typedef struct Nfs3RFsInfo Nfs3RFsInfo; typedef struct Nfs3TPathconf Nfs3TPathconf; typedef struct Nfs3RPathconf Nfs3RPathconf; typedef struct Nfs3TCommit Nfs3TCommit; typedef struct Nfs3RCommit Nfs3RCommit; struct Nfs3Call { SunRpc rpc; Nfs3CallType type; }; struct Nfs3Handle { uchar h[Nfs3MaxHandleSize]; u32int len; }; struct Nfs3Time { u32int sec; u32int nsec; }; struct Nfs3Attr { Nfs3FileType type; u32int mode; u32int nlink; u32int uid; u32int gid; u64int size; u64int used; u32int major; u32int minor; u64int fsid; u64int fileid; Nfs3Time atime; Nfs3Time mtime; Nfs3Time ctime; }; struct Nfs3WccAttr { u64int size; Nfs3Time mtime; Nfs3Time ctime; }; struct Nfs3Wcc { u1int haveWccAttr; Nfs3WccAttr wccAttr; u1int haveAttr; Nfs3Attr attr; }; struct Nfs3SetAttr { u1int setMode; u32int mode; u1int setUid; u32int uid; u1int setGid; u32int gid; u1int setSize; u64int size; Nfs3SetTime setAtime; Nfs3Time atime; Nfs3SetTime setMtime; Nfs3Time mtime; }; struct Nfs3TNull { Nfs3Call call; }; struct Nfs3RNull { Nfs3Call call; }; struct Nfs3TGetattr { Nfs3Call call; Nfs3Handle handle; }; struct Nfs3RGetattr { Nfs3Call call; Nfs3Status status; Nfs3Attr attr; }; struct Nfs3TSetattr { Nfs3Call call; Nfs3Handle handle; Nfs3SetAttr attr; u1int checkCtime; Nfs3Time ctime; }; struct Nfs3RSetattr { Nfs3Call call; Nfs3Status status; Nfs3Wcc wcc; }; struct Nfs3TLookup { Nfs3Call call; Nfs3Handle handle; char *name; }; struct Nfs3RLookup { Nfs3Call call; Nfs3Status status; Nfs3Handle handle; u1int haveAttr; Nfs3Attr attr; u1int haveDirAttr; Nfs3Attr dirAttr; }; struct Nfs3TAccess { Nfs3Call call; Nfs3Handle handle; u32int access; }; struct Nfs3RAccess { Nfs3Call call; Nfs3Status status; u1int haveAttr; Nfs3Attr attr; u32int access; }; struct Nfs3TReadlink { Nfs3Call call; Nfs3Handle handle; }; struct Nfs3RReadlink { Nfs3Call call; Nfs3Status status; u1int haveAttr; Nfs3Attr attr; char *data; }; struct Nfs3TRead { Nfs3Call call; Nfs3Handle handle; u64int offset; u32int count; }; struct Nfs3RRead { Nfs3Call call; Nfs3Status status; u1int haveAttr; Nfs3Attr attr; u32int count; u1int eof; uchar *data; u32int ndata; }; struct Nfs3TWrite { Nfs3Call call;