xref: /plan9/sys/include/plumb.h (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
1 #pragma	lib	"libplumb.a"
2 #pragma	src	"/sys/src/libplumb"
3 
4 /*
5  * Message format:
6  *	source application\n
7  *	destination port\n
8  *	working directory\n
9  *	type\n
10  *	attributes\n
11  *	nbytes\n
12  *	n bytes of data
13  */
14 
15 typedef struct Plumbattr Plumbattr;
16 typedef struct Plumbmsg Plumbmsg;
17 
18 struct Plumbmsg
19 {
20 	char		*src;
21 	char		*dst;
22 	char		*wdir;
23 	char		*type;
24 	Plumbattr	*attr;
25 	int		ndata;
26 	char		*data;
27 };
28 
29 struct Plumbattr
30 {
31 	char		*name;
32 	char		*value;
33 	Plumbattr	*next;
34 };
35 
36 int			plumbsend(int, Plumbmsg*);
37 int			plumbsendtext(int, char*, char*, char*, char*);
38 Plumbmsg*	plumbrecv(int);
39 char*		plumbpack(Plumbmsg*, int*);
40 Plumbmsg*	plumbunpack(char*, int);
41 Plumbmsg*	plumbunpackpartial(char*, int, int*);
42 char*		plumbpackattr(Plumbattr*);
43 Plumbattr*	plumbunpackattr(char*);
44 Plumbattr*	plumbaddattr(Plumbattr*, Plumbattr*);
45 Plumbattr*	plumbdelattr(Plumbattr*, char*);
46 void			plumbfree(Plumbmsg*);
47 char*		plumblookup(Plumbattr*, char*);
48 int			plumbopen(char*, int);
49 int			eplumb(int, char*);
50