aboutsummaryrefslogtreecommitdiff
path: root/include/plumb.h
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2003-10-14 02:35:00 +0000
committerrsc <devnull@localhost>2003-10-14 02:35:00 +0000
commit3d7e9092a436b707f2160fb869ab68e2a222bc4e (patch)
tree1ef451afc85f7ecba3c8f97ad5222b7ccc515454 /include/plumb.h
parent169aba14a4766b3d15695ef27681d0f1d04f8521 (diff)
downloadplan9port-3d7e9092a436b707f2160fb869ab68e2a222bc4e.tar.gz
plan9port-3d7e9092a436b707f2160fb869ab68e2a222bc4e.tar.bz2
plan9port-3d7e9092a436b707f2160fb869ab68e2a222bc4e.zip
Single-threaded plumber that can run "start" rules.
Thanks to Caerwyn Jones.
Diffstat (limited to 'include/plumb.h')
-rw-r--r--include/plumb.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/include/plumb.h b/include/plumb.h
new file mode 100644
index 00000000..abc56d08
--- /dev/null
+++ b/include/plumb.h
@@ -0,0 +1,48 @@
+#pragma lib "libplumb.a"
+#pragma src "/sys/src/libplumb"
+
+/*
+ * Message format:
+ * source application\n
+ * destination port\n
+ * working directory\n
+ * type\n
+ * attributes\n
+ * nbytes\n
+ * n bytes of data
+ */
+
+typedef struct Plumbattr Plumbattr;
+typedef struct Plumbmsg Plumbmsg;
+
+struct Plumbmsg
+{
+ char *src;
+ char *dst;
+ char *wdir;
+ char *type;
+ Plumbattr *attr;
+ int ndata;
+ char *data;
+};
+
+struct Plumbattr
+{
+ char *name;
+ char *value;
+ Plumbattr *next;
+};
+
+int plumbsend(int, Plumbmsg*);
+Plumbmsg* plumbrecv(int);
+char* plumbpack(Plumbmsg*, int*);
+Plumbmsg* plumbunpack(char*, int);
+Plumbmsg* plumbunpackpartial(char*, int, int*);
+char* plumbpackattr(Plumbattr*);
+Plumbattr* plumbunpackattr(char*);
+Plumbattr* plumbaddattr(Plumbattr*, Plumbattr*);
+Plumbattr* plumbdelattr(Plumbattr*, char*);
+void plumbfree(Plumbmsg*);
+char* plumblookup(Plumbattr*, char*);
+int plumbopen(char*, int);
+int eplumb(int, char*);