summaryrefslogtreecommitdiff
path: root/sys/src/cmd/execnet/dat.h
diff options
context:
space:
mode:
authorTaru Karttunen <taruti@taruti.net>2011-03-30 15:46:40 +0300
committerTaru Karttunen <taruti@taruti.net>2011-03-30 15:46:40 +0300
commite5888a1ffdae813d7575f5fb02275c6bb07e5199 (patch)
treed8d51eac403f07814b9e936eed0c9a79195e2450 /sys/src/cmd/execnet/dat.h
Import sources from 2011-03-30 iso image
Diffstat (limited to 'sys/src/cmd/execnet/dat.h')
-rwxr-xr-xsys/src/cmd/execnet/dat.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/sys/src/cmd/execnet/dat.h b/sys/src/cmd/execnet/dat.h
new file mode 100755
index 000000000..8c9c17db3
--- /dev/null
+++ b/sys/src/cmd/execnet/dat.h
@@ -0,0 +1,63 @@
+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,
+};
+