8 typedef struct Con Con;
9 typedef struct DirBuf DirBuf;
10 typedef struct Excl Excl;
11 typedef struct Fid Fid;
12 typedef struct Fsys Fsys;
13 typedef struct Msg Msg;
15 #pragma incomplete DirBuf
16 #pragma incomplete Excl
17 #pragma incomplete Fsys
21 u32int msize; /* actual size of data */
26 Msg* anext; /* allocation free list */
28 Msg* mnext; /* all active messsages on this Con */
33 Msg* flush; /* flushes waiting for this Msg */
35 Msg* rwnext; /* read/write queue */
36 int nowq; /* do not place on write queue */
49 ConNoAuthCheck = 1<<1,
50 ConNoPermCheck = 1<<2,
56 uchar* data; /* max, not negotiated */
57 int isconsole; /* immutable */
58 int flags; /* immutable */
59 char remote[128]; /* immutable */
64 u32int msize; /* negotiated with Tversion */
67 Con* anext; /* alloc */
68 Con* cnext; /* in use */
72 int aok; /* authentication done */
75 Msg* mhead; /* all Msgs on this connection */
80 Msg* whead; /* write queue */
85 Fid* fidhash[NFidHash];
104 int ref; /* inc/dec under Con.fidlock */
116 QLock alock; /* Tauth/Tattach */
120 Fid* sort; /* sorted by uname in cmdWho */
121 Fid* hash; /* lookup by fidno */
122 Fid* next; /* clunk session with Tversion */
126 enum { /* Fid.flags and fidGet(..., flags) */
131 enum { /* Fid.open */
141 extern int (*rFcall[Tmax])(Msg*);
142 extern int validFileName(char*);
147 extern int authCheck(Fcall*, Fid*, Fsys*);
148 extern int authRead(Fid*, void*, int);
149 extern int authWrite(Fid*, void*, int);
154 extern void dirBufFree(DirBuf*);
155 extern int dirDe2M(DirEntry*, uchar*, int);
156 extern int dirRead(Fid*, uchar*, int, vlong);
161 extern int exclAlloc(Fid*);
162 extern void exclFree(Fid*);
163 extern void exclInit(void);
164 extern int exclUpdate(Fid*);
169 extern void fidClunk(Fid*);
170 extern void fidClunkAll(Con*);
171 extern Fid* fidGet(Con*, u32int, int);
172 extern void fidInit(void);
173 extern void fidPut(Fid*);
178 extern void fsysFsRlock(Fsys*);
179 extern void fsysFsRUnlock(Fsys*);
180 extern Fs* fsysGetFs(Fsys*);
181 extern Fsys* fsysGet(char*);
182 extern char* fsysGetName(Fsys*);
183 extern File* fsysGetRoot(Fsys*, char*);
184 extern Fsys* fsysIncRef(Fsys*);
185 extern int fsysInit(void);
186 extern int fsysNoAuthCheck(Fsys*);
187 extern int fsysNoPermCheck(Fsys*);
188 extern void fsysPut(Fsys*);
189 extern int fsysWstatAllow(Fsys*);
194 extern int lstnInit(void);
199 extern Con* conAlloc(int, char*, int);
200 extern void conInit(void);
201 extern void msgFlush(Msg*);
202 extern void msgInit(void);
207 extern int srvInit(void);
212 extern int groupLeader(char*, char*);
213 extern int groupMember(char*, char*);
214 extern int groupWriteMember(char*);
215 extern char* unameByUid(char*);
216 extern char* uidByUname(char*);
217 extern int usersInit(void);
218 extern int usersFileRead(char*);
219 extern int validUserName(char*);
222 extern char* unamenone;
223 extern char* uidnoworld;
228 extern int cliAddCmd(char*, int (*)(int, char*[]));
229 extern int cliError(char*, ...);
230 extern int cliInit(void);
231 extern int cliExec(char*);
232 #pragma varargck argpos cliError 1
237 extern int cmdInit(void);
242 extern int consPrompt(char*);
243 extern int consInit(void);
244 extern int consOpen(int, int, int);
245 extern int consTTY(void);
246 extern int consWrite(char*, int);
251 extern int consPrint(char*, ...);
252 extern int consVPrint(char*, va_list);
253 #pragma varargck argpos consPrint 1