mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-12 11:10:07 +00:00
70 lines
1.3 KiB
C
70 lines
1.3 KiB
C
#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
|