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 /sys/include | |
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.
Diffstat (limited to 'sys/include')
-rw-r--r-- | sys/include/ape/plumb.h | 57 |
1 files changed, 57 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 |