6 typedef struct Accept Accept;
7 typedef struct Auth Auth;
8 typedef struct Authunix Authunix;
9 typedef struct Chalstuff Chalstuff;
10 typedef uchar Fhandle[FHSIZE];
11 typedef struct Fid Fid;
12 typedef struct Procmap Procmap;
13 typedef struct Progmap Progmap;
14 typedef struct Reject Reject;
15 typedef struct Rpccall Rpccall;
16 typedef struct Rpccache Rpccache;
17 typedef struct Sattr Sattr;
18 typedef struct Session Session;
19 typedef struct String String;
20 typedef struct Strnode Strnode;
21 typedef struct Unixid Unixid;
22 typedef struct Unixidmap Unixidmap;
23 typedef struct Unixmap Unixmap;
24 typedef struct Unixscmap Unixscmap;
25 typedef struct Xfid Xfid;
26 typedef struct Xfile Xfile;
38 void (*init)(int, char**);
45 int (*procp)(int, Rpccall*, Rpccall*);
70 void * results; /* SUCCESS */
71 struct{ /* PROG_MISMATCH */
72 ulong plow; /* acceptable version numbers */
82 struct{ /* RPC_MISMATCH */
83 ulong rlow; /* acceptable rpc version numbers */
86 ulong authstat; /* AUTH_ERROR */
92 /* corresponds to Udphdr */
94 ulong host; /* ipv4 subset: prefixed to RPC message */
96 ulong lhost; /* ipv4 subset: prefixed to RPC message */
98 ulong port; /* prefixed to RPC message */
99 ulong lport; /* prefixed to RPC message */
101 ulong xid; /* transaction id */
102 ulong mtype; /* CALL or REPLY */
105 ulong rpcvers; /* must be equal to two (2) */
106 ulong prog; /* program number */
107 ulong vers; /* program version */
108 ulong proc; /* procedure number */
109 Auth cred; /* authentication credentials */
110 Auth verf; /* authentication verifier */
113 void * args; /* procedure-specific */
116 ulong stat; /* MSG_ACCEPTED or MSG_DENIED */
142 ulong atime; /* sec's */
143 ulong ausec; /* microsec's */
150 Strnode *next; /* in hash bucket */
191 Xfile * next; /* hash chain */
193 Qid qid; /* from stat */
195 Xfile * child; /* if directory */
196 Xfile * sib; /* siblings */
197 char * name; /* path element */
211 Xfid * next; /* Xfile's user list */
216 ulong mode; /* open mode, if opfid is non-zero */
222 Fid ** owner; /* null for root fids */
225 long tstale; /* auto-clunk */
237 char * service; /* for dial */
240 char cchal[CHALLEN]; /* client challenge */
241 char schal[CHALLEN]; /* server challenge */
242 char authid[ANAMELEN]; /* server encryption uid */
243 char authdom[DOMLEN]; /* server encryption domain */
244 char * spec; /* for attach */
245 Xfile * root; /* to answer mount rpc */
248 uchar data[IOHDRSZ+Maxfdata];
249 uchar statbuf[Maxstatdata];
250 Fid * free; /* available */
251 Fid list; /* active, most-recently-used order */
267 extern void (*rpcalarm)(void);
268 extern long starttime;
270 extern char * config;
271 extern int staletime;
272 extern int messagesize;
273 extern char * commonopts;