blob: 52b2cb963f20aa1e7c20024e6fb5db87b6d6e6e2 [file] [log] [blame]
#ifndef _9PCLIENT_H_
#define _9PCLIENT_H_ 1
#ifdef __cplusplus
extern "C" {
#endif
AUTOLIB(9pclient)
/*
* Simple user-level 9P client.
*/
typedef struct CFsys CFsys;
typedef struct CFid CFid;
CFsys *fsinit(int);
CFsys *fsmount(int, char*);
int fsversion(CFsys*, int, char*, int);
CFid *fsauth(CFsys*, char*, char*);
CFid *fsattach(CFsys*, CFid*, char*, char*);
CFid *fsopen(CFsys*, char*, int);
int fsopenfd(CFsys*, char*, int);
long fsread(CFid*, void*, long);
long fsreadn(CFid*, void*, long);
long fspread(CFid*, void*, long, vlong);
long fspwrite(CFid*, void*, long, vlong);
vlong fsseek(CFid*, vlong, int);
long fswrite(CFid*, void*, long);
void fsclose(CFid*);
void fsunmount(CFsys*);
void _fsunmount(CFsys*); /* do not close fd */
struct Dir; /* in case there's no lib9.h */
long fsdirread(CFid*, struct Dir**);
long fsdirreadall(CFid*, struct Dir**);
struct Dir *fsdirstat(CFsys*, char*);
struct Dir *fsdirfstat(CFid*);
int fsdirwstat(CFsys*, char*, struct Dir*);
int fsdirfwstat(CFid*, struct Dir*);
CFid *fsroot(CFsys*);
void fssetroot(CFsys*, CFid*);
CFsys *nsinit(char*);
CFsys *nsmount(char*, char*);
CFid *nsopen(char*, char*, char*, int);
int fsfremove(CFid*);
int fsremove(CFsys*, char*);
CFid *fscreate(CFsys*, char*, int, ulong);
int fsaccess(CFsys*, char*, int);
int fsvprint(CFid*, char*, va_list);
int fsprint(CFid*, char*, ...);
Qid fsqid(CFid*);
/* manipulate unopened fids */
CFid *fswalk(CFid*, char*);
int fsfopen(CFid*, int);
int fsfcreate(CFid*, char*, int, ulong);
extern int chatty9pclient;
extern int eofkill9pclient;
#ifdef __cplusplus
}
#endif
#endif