summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorOri Bernstein <ori@eigenstate.org>2020-06-05 11:28:47 -0700
committerOri Bernstein <ori@eigenstate.org>2020-06-05 11:28:47 -0700
commitf08e95cd93b7b6e2e2ee1a61ddd44e81a9337155 (patch)
tree2f09e981db61528cd11a176ef0228ead5cac3531 /sys
parent2327b48d77c28dbf70d811b765ddd7e1a72618ac (diff)
ape: make libplumb available under ape.
This adds the mkfiles and plumb.h to ape, similar to how libdraw is made available. This is used for ports such as netsurf.
Diffstat (limited to 'sys')
-rw-r--r--sys/include/ape/plumb.h57
-rw-r--r--sys/src/ape/lib/9/libc.h1
-rw-r--r--sys/src/ape/lib/9/mkfile1
3 files changed, 59 insertions, 0 deletions
diff --git a/sys/include/ape/plumb.h b/sys/include/ape/plumb.h
new file mode 100644
index 000000000..0e1b3ca4d
--- /dev/null
+++ b/sys/include/ape/plumb.h
@@ -0,0 +1,57 @@
+#ifndef _PLAN9_SOURCE
+ This header file is an extension to ANSI/POSIX
+#endif
+
+#ifndef __PLUMB_H_
+#define __PLUMB_H_
+#pragma src "/sys/src/ape/lib/plumb"
+#pragma lib "/$M/lib/ape/libplumb.a"
+
+/*
+ * 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*);
+int plumbsendtext(int, char*, char*, char*, char*);
+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*);
+
+#endif
diff --git a/sys/src/ape/lib/9/libc.h b/sys/src/ape/lib/9/libc.h
index 93fb26d13..d19232eb6 100644
--- a/sys/src/ape/lib/9/libc.h
+++ b/sys/src/ape/lib/9/libc.h
@@ -159,6 +159,7 @@ extern vlong _NSEC(void);
#define ERRMAX 128
int errstr(char*, unsigned int);
+void rerrstr(char*, unsigned int);
extern void sysfatal(char*, ...);
extern void setmalloctag(void*, uintptr_t);
diff --git a/sys/src/ape/lib/9/mkfile b/sys/src/ape/lib/9/mkfile
index f3e9d7f4f..9854cf0ac 100644
--- a/sys/src/ape/lib/9/mkfile
+++ b/sys/src/ape/lib/9/mkfile
@@ -8,6 +8,7 @@ OFILES=\
crypt.$O\
ctime.$O\
errstr.$O\
+ rerrstr.$O\
getcallerpc.$O\
getfcr.$O\
getfields.$O\