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.
This commit is contained in:
Ori Bernstein 2020-06-05 11:28:47 -07:00
parent 2327b48d77
commit f08e95cd93
3 changed files with 59 additions and 0 deletions

57
sys/include/ape/plumb.h Normal file
View file

@ -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

View file

@ -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);

View file

@ -8,6 +8,7 @@ OFILES=\
crypt.$O\
ctime.$O\
errstr.$O\
rerrstr.$O\
getcallerpc.$O\
getfcr.$O\
getfields.$O\