Blob


1 #ifndef _LIBPLUMB_H_
2 #define _LIBPLUMB_H_ 1
3 #if defined(__cplusplus)
4 extern "C" {
5 #endif
6 /*
7 #pragma lib "libplumb.a"
8 #pragma src "/sys/src/libplumb"
9 */
11 /*
12 * Message format:
13 * source application\n
14 * destination port\n
15 * working directory\n
16 * type\n
17 * attributes\n
18 * nbytes\n
19 * n bytes of data
20 */
22 typedef struct Plumbattr Plumbattr;
23 typedef struct Plumbmsg Plumbmsg;
25 struct Plumbmsg
26 {
27 char *src;
28 char *dst;
29 char *wdir;
30 char *type;
31 Plumbattr *attr;
32 int ndata;
33 char *data;
34 };
36 struct Plumbattr
37 {
38 char *name;
39 char *value;
40 Plumbattr *next;
41 };
43 int plumbsend(int, Plumbmsg*);
44 Plumbmsg* plumbrecv(int);
45 char* plumbpack(Plumbmsg*, int*);
46 Plumbmsg* plumbunpack(char*, int);
47 Plumbmsg* plumbunpackpartial(char*, int, int*);
48 char* plumbpackattr(Plumbattr*);
49 Plumbattr* plumbunpackattr(char*);
50 Plumbattr* plumbaddattr(Plumbattr*, Plumbattr*);
51 Plumbattr* plumbdelattr(Plumbattr*, char*);
52 void plumbfree(Plumbmsg*);
53 char* plumblookup(Plumbattr*, char*);
54 int plumbopen(char*, int);
55 int eplumb(int, char*);
57 #if defined(__cplusplus)
58 }
59 #endif
60 #endif