plumb.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