diff options
author | Ori Bernstein <ori@eigenstate.org> | 2020-06-05 11:28:47 -0700 |
---|---|---|
committer | Ori Bernstein <ori@eigenstate.org> | 2020-06-05 11:28:47 -0700 |
commit | f08e95cd93b7b6e2e2ee1a61ddd44e81a9337155 (patch) | |
tree | 2f09e981db61528cd11a176ef0228ead5cac3531 | |
parent | 2327b48d77c28dbf70d811b765ddd7e1a72618ac (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.
-rw-r--r-- | sys/include/ape/plumb.h | 57 | ||||
-rw-r--r-- | sys/src/ape/lib/9/libc.h | 1 | ||||
-rw-r--r-- | sys/src/ape/lib/9/mkfile | 1 |
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\ |