123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- typedef struct Msg Msg;
- struct Msg
- {
- Msg *link;
- uchar *rp;
- uchar *ep;
- };
- typedef struct Client Client;
- struct Client
- {
- int moribund;
- int activethread;
- int num;
- int ref;
- int status;
- int pid;
- char *cmd;
- int fd[2];
- char err[ERRMAX];
- Req *execreq;
- Channel *execpid;
- Req *rq, **erq; /* reading */
- Msg *mq, **emq;
- Ioproc *readerproc;
- Channel *writerkick;
- Req *wq, **ewq; /* writing */
- Req *curw; /* currently writing */
- Ioproc *writerproc; /* writing */
- };
- extern int nclient;
- extern Client **client;
- extern void dataread(Req*, Client*);
- extern int newclient(void);
- extern void closeclient(Client*);
- extern void datawrite(Req*, Client*);
- extern void ctlwrite(Req*, Client*);
- extern void clientflush(Req*, Client*);
- #define emalloc emalloc9p
- #define estrdup estrdup9p
- #define erealloc erealloc9p
- extern Srv fs;
- extern void initfs(void);
- extern void setexecname(char*);
- enum
- {
- STACK = 8192,
- };
- enum /* Client.status */
- {
- Closed,
- Exec,
- Established,
- Hangup,
- };
|