plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

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