xref: /plan9/sys/include/plumb.h (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
17dd7cddfSDavid du Colombier #pragma	lib	"libplumb.a"
27dd7cddfSDavid du Colombier #pragma	src	"/sys/src/libplumb"
37dd7cddfSDavid du Colombier 
47dd7cddfSDavid du Colombier /*
57dd7cddfSDavid du Colombier  * Message format:
67dd7cddfSDavid du Colombier  *	source application\n
77dd7cddfSDavid du Colombier  *	destination port\n
87dd7cddfSDavid du Colombier  *	working directory\n
97dd7cddfSDavid du Colombier  *	type\n
107dd7cddfSDavid du Colombier  *	attributes\n
117dd7cddfSDavid du Colombier  *	nbytes\n
127dd7cddfSDavid du Colombier  *	n bytes of data
137dd7cddfSDavid du Colombier  */
147dd7cddfSDavid du Colombier 
157dd7cddfSDavid du Colombier typedef struct Plumbattr Plumbattr;
167dd7cddfSDavid du Colombier typedef struct Plumbmsg Plumbmsg;
177dd7cddfSDavid du Colombier 
187dd7cddfSDavid du Colombier struct Plumbmsg
197dd7cddfSDavid du Colombier {
207dd7cddfSDavid du Colombier 	char		*src;
217dd7cddfSDavid du Colombier 	char		*dst;
227dd7cddfSDavid du Colombier 	char		*wdir;
237dd7cddfSDavid du Colombier 	char		*type;
247dd7cddfSDavid du Colombier 	Plumbattr	*attr;
257dd7cddfSDavid du Colombier 	int		ndata;
267dd7cddfSDavid du Colombier 	char		*data;
277dd7cddfSDavid du Colombier };
287dd7cddfSDavid du Colombier 
297dd7cddfSDavid du Colombier struct Plumbattr
307dd7cddfSDavid du Colombier {
317dd7cddfSDavid du Colombier 	char		*name;
327dd7cddfSDavid du Colombier 	char		*value;
337dd7cddfSDavid du Colombier 	Plumbattr	*next;
347dd7cddfSDavid du Colombier };
357dd7cddfSDavid du Colombier 
367dd7cddfSDavid du Colombier int			plumbsend(int, Plumbmsg*);
37*9a747e4fSDavid du Colombier int			plumbsendtext(int, char*, char*, char*, char*);
387dd7cddfSDavid du Colombier Plumbmsg*	plumbrecv(int);
397dd7cddfSDavid du Colombier char*		plumbpack(Plumbmsg*, int*);
407dd7cddfSDavid du Colombier Plumbmsg*	plumbunpack(char*, int);
417dd7cddfSDavid du Colombier Plumbmsg*	plumbunpackpartial(char*, int, int*);
427dd7cddfSDavid du Colombier char*		plumbpackattr(Plumbattr*);
437dd7cddfSDavid du Colombier Plumbattr*	plumbunpackattr(char*);
447dd7cddfSDavid du Colombier Plumbattr*	plumbaddattr(Plumbattr*, Plumbattr*);
457dd7cddfSDavid du Colombier Plumbattr*	plumbdelattr(Plumbattr*, char*);
467dd7cddfSDavid du Colombier void			plumbfree(Plumbmsg*);
477dd7cddfSDavid du Colombier char*		plumblookup(Plumbattr*, char*);
487dd7cddfSDavid du Colombier int			plumbopen(char*, int);
497dd7cddfSDavid du Colombier int			eplumb(int, char*);
50