| #ifndef _LIBPLUMB_H_ |
| #define _LIBPLUMB_H_ 1 |
| #if defined(__cplusplus) |
| extern "C" { |
| #endif |
| |
| AUTOLIB(plumb) |
| /* |
| #pragma lib "libplumb.a" |
| #pragma src "/sys/src/libplumb" |
| */ |
| |
| /* |
| * Message format: |
| * source application\n |
| * destination port\n |
| * working directory\n |
| * type\n |
| * attributes\n |
| * nbytes\n |
| * n bytes of data |
| */ |
| |
| typedef struct Plumbattr Plumbattr; |
| typedef struct Plumbmsg Plumbmsg; |
| |
| struct Plumbmsg |
| { |
| char *src; |
| char *dst; |
| char *wdir; |
| char *type; |
| Plumbattr *attr; |
| int ndata; |
| char *data; |
| }; |
| |
| struct Plumbattr |
| { |
| char *name; |
| char *value; |
| Plumbattr *next; |
| }; |
| |
| int plumbsend(int, Plumbmsg*); |
| Plumbmsg* plumbrecv(int); |
| char* plumbpack(Plumbmsg*, int*); |
| Plumbmsg* plumbunpack(char*, int); |
| Plumbmsg* plumbunpackpartial(char*, int, int*); |
| char* plumbpackattr(Plumbattr*); |
| Plumbattr* plumbunpackattr(char*); |
| Plumbattr* plumbaddattr(Plumbattr*, Plumbattr*); |
| Plumbattr* plumbdelattr(Plumbattr*, char*); |
| void plumbfree(Plumbmsg*); |
| char* plumblookup(Plumbattr*, char*); |
| int plumbopen(char*, int); |
| int eplumb(int, char*); |
| int plumbunmount(void); |
| |
| #ifdef _9PCLIENT_H_ |
| CFid* plumbopenfid(char*, int); |
| Plumbmsg* plumbrecvfid(CFid*); |
| Plumbmsg* threadplumbrecvfid(CFid*); |
| int plumbsendtofid(CFid*, Plumbmsg*); |
| #endif |
| |
| #if defined(__cplusplus) |
| } |
| #endif |
| #endif |