rsc | f701258 | 2003-11-25 01:40:27 +0000 | [diff] [blame] | 1 | #ifndef _LIBPLUMB_H_ |
| 2 | #define _LIBPLUMB_H_ 1 |
| 3 | #if defined(__cplusplus) |
| 4 | extern "C" { |
| 5 | #endif |
rsc | 66ed321 | 2005-01-04 21:17:59 +0000 | [diff] [blame] | 6 | |
| 7 | AUTOLIB(plumb) |
rsc | 97a5e5f | 2003-11-23 18:25:35 +0000 | [diff] [blame] | 8 | /* |
rsc | 3d7e909 | 2003-10-14 02:35:00 +0000 | [diff] [blame] | 9 | #pragma lib "libplumb.a" |
| 10 | #pragma src "/sys/src/libplumb" |
rsc | 97a5e5f | 2003-11-23 18:25:35 +0000 | [diff] [blame] | 11 | */ |
rsc | 3d7e909 | 2003-10-14 02:35:00 +0000 | [diff] [blame] | 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*); |
rsc | f701258 | 2003-11-25 01:40:27 +0000 | [diff] [blame] | 58 | |
rsc | 66ed321 | 2005-01-04 21:17:59 +0000 | [diff] [blame] | 59 | #ifdef _9PCLIENT_H_ |
| 60 | CFid* plumbopenfid(char*, int); |
| 61 | Plumbmsg* plumbrecvfid(CFid*); |
| 62 | Plumbmsg* threadplumbrecvfid(CFid*); |
| 63 | int plumbsendtofid(CFid*, Plumbmsg*); |
rsc | eacbfb2 | 2004-03-15 01:58:31 +0000 | [diff] [blame] | 64 | #endif |
| 65 | |
rsc | f701258 | 2003-11-25 01:40:27 +0000 | [diff] [blame] | 66 | #if defined(__cplusplus) |
| 67 | } |
| 68 | #endif |
| 69 | #endif |