17dd7cddfSDavid du Colombier #pragma lib "libplumb.a" 27dd7cddfSDavid du Colombier #pragma src "/sys/src/libplumb" 37dd7cddfSDavid du Colombier 47dd7cddfSDavid du Colombier /* 57dd7cddfSDavid du Colombier * Message format: 67dd7cddfSDavid du Colombier * source application\n 77dd7cddfSDavid du Colombier * destination port\n 87dd7cddfSDavid du Colombier * working directory\n 97dd7cddfSDavid du Colombier * type\n 107dd7cddfSDavid du Colombier * attributes\n 117dd7cddfSDavid du Colombier * nbytes\n 127dd7cddfSDavid du Colombier * n bytes of data 137dd7cddfSDavid du Colombier */ 147dd7cddfSDavid du Colombier 157dd7cddfSDavid du Colombier typedef struct Plumbattr Plumbattr; 167dd7cddfSDavid du Colombier typedef struct Plumbmsg Plumbmsg; 177dd7cddfSDavid du Colombier 187dd7cddfSDavid du Colombier struct Plumbmsg 197dd7cddfSDavid du Colombier { 207dd7cddfSDavid du Colombier char *src; 217dd7cddfSDavid du Colombier char *dst; 227dd7cddfSDavid du Colombier char *wdir; 237dd7cddfSDavid du Colombier char *type; 247dd7cddfSDavid du Colombier Plumbattr *attr; 257dd7cddfSDavid du Colombier int ndata; 267dd7cddfSDavid du Colombier char *data; 277dd7cddfSDavid du Colombier }; 287dd7cddfSDavid du Colombier 297dd7cddfSDavid du Colombier struct Plumbattr 307dd7cddfSDavid du Colombier { 317dd7cddfSDavid du Colombier char *name; 327dd7cddfSDavid du Colombier char *value; 337dd7cddfSDavid du Colombier Plumbattr *next; 347dd7cddfSDavid du Colombier }; 357dd7cddfSDavid du Colombier 367dd7cddfSDavid du Colombier int plumbsend(int, Plumbmsg*); 37*9a747e4fSDavid du Colombier int plumbsendtext(int, char*, char*, char*, char*); 387dd7cddfSDavid du Colombier Plumbmsg* plumbrecv(int); 397dd7cddfSDavid du Colombier char* plumbpack(Plumbmsg*, int*); 407dd7cddfSDavid du Colombier Plumbmsg* plumbunpack(char*, int); 417dd7cddfSDavid du Colombier Plumbmsg* plumbunpackpartial(char*, int, int*); 427dd7cddfSDavid du Colombier char* plumbpackattr(Plumbattr*); 437dd7cddfSDavid du Colombier Plumbattr* plumbunpackattr(char*); 447dd7cddfSDavid du Colombier Plumbattr* plumbaddattr(Plumbattr*, Plumbattr*); 457dd7cddfSDavid du Colombier Plumbattr* plumbdelattr(Plumbattr*, char*); 467dd7cddfSDavid du Colombier void plumbfree(Plumbmsg*); 477dd7cddfSDavid du Colombier char* plumblookup(Plumbattr*, char*); 487dd7cddfSDavid du Colombier int plumbopen(char*, int); 497dd7cddfSDavid du Colombier int eplumb(int, char*); 50