tplumb.h - plan9port - [fork] Plan 9 from user space
HTML git clone git://src.adamsgaard.dk/plan9port
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
tplumb.h (1283B)
---
1 #ifndef _LIBPLUMB_H_
2 #define _LIBPLUMB_H_ 1
3 #if defined(__cplusplus)
4 extern "C" {
5 #endif
6
7 AUTOLIB(plumb)
8 /*
9 #pragma lib "libplumb.a"
10 #pragma src "/sys/src/libplumb"
11 */
12
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 */
23
24 typedef struct Plumbattr Plumbattr;
25 typedef struct Plumbmsg Plumbmsg;
26
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 };
37
38 struct Plumbattr
39 {
40 char *name;
41 char *value;
42 Plumbattr *next;
43 };
44
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);
59
60 #ifdef _9PCLIENT_H_
61 CFid* plumbopenfid(char*, int);
62 Plumbmsg* plumbrecvfid(CFid*);
63 Plumbmsg* threadplumbrecvfid(CFid*);
64 int plumbsendtofid(CFid*, Plumbmsg*);
65 #endif
66
67 #if defined(__cplusplus)
68 }
69 #endif
70 #endif