Blob


1 #pragma lib "libplumb.a"
2 #pragma src "/sys/src/libplumb"
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 */
15 typedef struct Plumbattr Plumbattr;
16 typedef struct Plumbmsg Plumbmsg;
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 };
29 struct Plumbattr
30 {
31 char *name;
32 char *value;
33 Plumbattr *next;
34 };
36 int plumbsend(int, Plumbmsg*);
37 Plumbmsg* plumbrecv(int);
38 char* plumbpack(Plumbmsg*, int*);
39 Plumbmsg* plumbunpack(char*, int);
40 Plumbmsg* plumbunpackpartial(char*, int, int*);
41 char* plumbpackattr(Plumbattr*);
42 Plumbattr* plumbunpackattr(char*);
43 Plumbattr* plumbaddattr(Plumbattr*, Plumbattr*);
44 Plumbattr* plumbdelattr(Plumbattr*, char*);
45 void plumbfree(Plumbmsg*);
46 char* plumblookup(Plumbattr*, char*);
47 int plumbopen(char*, int);
48 int eplumb(int, char*);