struct Fsrpc
{
- int busy; /* Work buffer has pending rpc to service */
+ Fsrpc *next; /* freelist */
uintptr pid; /* Pid of slave process executing the rpc */
int canint; /* Interrupt gate */
int flushtag; /* Tag on which to reply to flush */
Fcall work; /* Plan 9 incoming Fcall */
- uchar *buf; /* Data buffer */
+ uchar buf[]; /* Data buffer */
};
struct Fid
struct Proc
{
uintptr pid;
- int busy;
+ Fsrpc *busy;
Proc *next;
};
{
MAXPROC = 50,
FHASHSIZE = 64,
- Nr_workbufs = 50,
Fidchunk = 1000,
Npsmpt = 32,
Nqidbits = 5,
char Emip[];
char Enopsmt[];
-Extern Fsrpc *Workq;
Extern int dbg;
Extern File *root;
Extern File *psmpt;
int freefid(int);
Fid *newfid(int);
Fsrpc *getsbuf(void);
+void putsbuf(Fsrpc*);
void initroot(void);
void fatal(char*, ...);
char* makepath(File*, char*);