Blob


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