Blob


1 #ifndef _LIBPLUMB_H_
2 #define _LIBPLUMB_H_ 1
3 #if defined(__cplusplus)
4 extern "C" {
5 #endif
7 AUTOLIB(plumb)
8 /*
9 #pragma lib "libplumb.a"
10 #pragma src "/sys/src/libplumb"
11 */
13 /*
14 * Message format:
15 * source application\n
16 * destination port\n
17 * working directory\n
18 * type\n
19 * attributes\n
20 * nbytes\n
21 * n bytes of data
22 */
24 typedef struct Plumbattr Plumbattr;
25 typedef struct Plumbmsg Plumbmsg;
27 struct Plumbmsg
28 {
29 char *src;
30 char *dst;
31 char *wdir;
32 char *type;
33 Plumbattr *attr;
34 int ndata;
35 char *data;
36 };
38 struct Plumbattr
39 {
40 char *name;
41 char *value;
42 Plumbattr *next;
43 };
45 int plumbsend(int, Plumbmsg*);
46 Plumbmsg* plumbrecv(int);
47 char* plumbpack(Plumbmsg*, int*);
48 Plumbmsg* plumbunpack(char*, int);
49 Plumbmsg* plumbunpackpartial(char*, int, int*);
50 char* plumbpackattr(Plumbattr*);
51 Plumbattr* plumbunpackattr(char*);
52 Plumbattr* plumbaddattr(Plumbattr*, Plumbattr*);
53 Plumbattr* plumbdelattr(Plumbattr*, char*);
54 void plumbfree(Plumbmsg*);
55 char* plumblookup(Plumbattr*, char*);
56 int plumbopen(char*, int);
57 int eplumb(int, char*);
58 int plumbunmount(void);
60 #ifdef _9PCLIENT_H_
61 CFid* plumbopenfid(char*, int);
62 Plumbmsg* plumbrecvfid(CFid*);
63 Plumbmsg* threadplumbrecvfid(CFid*);
64 int plumbsendtofid(CFid*, Plumbmsg*);
65 #endif
67 #if defined(__cplusplus)
68 }
69 #endif
70 #endif