Blob


1 #ifndef _9PCLIENT_H_
2 #define _9PCLIENT_H_ 1
3 #ifdef __cplusplus
4 extern "C" {
5 #endif
7 AUTOLIB(9pclient)
8 /*
9 * Simple user-level 9P client.
10 */
12 typedef struct CFsys CFsys;
13 typedef struct CFid CFid;
15 CFsys *fsinit(int);
16 CFsys *fsmount(int, char*);
18 int fsversion(CFsys*, int, char*, int);
19 CFid *fsauth(CFsys*, char*, char*);
20 CFid *fsattach(CFsys*, CFid*, char*, char*);
21 CFid *fsopen(CFsys*, char*, int);
22 int fsopenfd(CFsys*, char*, int);
23 long fsread(CFid*, void*, long);
24 long fsreadn(CFid*, void*, long);
25 long fspread(CFid*, void*, long, vlong);
26 long fspwrite(CFid*, void*, long, vlong);
27 vlong fsseek(CFid*, vlong, int);
28 long fswrite(CFid*, void*, long);
29 void fsclose(CFid*);
30 void fsunmount(CFsys*);
31 void _fsunmount(CFsys*); /* do not close fd */
32 struct Dir; /* in case there's no lib9.h */
33 long fsdirread(CFid*, struct Dir**);
34 long fsdirreadall(CFid*, struct Dir**);
35 struct Dir *fsdirstat(CFsys*, char*);
36 struct Dir *fsdirfstat(CFid*);
37 int fsdirwstat(CFsys*, char*, struct Dir*);
38 int fsdirfwstat(CFid*, struct Dir*);
39 CFid *fsroot(CFsys*);
40 void fssetroot(CFsys*, CFid*);
41 CFsys *nsinit(char*);
42 CFsys *nsmount(char*, char*);
43 CFid *nsopen(char*, char*, char*, int);
44 int fsfremove(CFid*);
45 int fsremove(CFsys*, char*);
46 CFid *fscreate(CFsys*, char*, int, ulong);
47 int fsaccess(CFsys*, char*, int);
48 int fsvprint(CFid*, char*, va_list);
49 int fsprint(CFid*, char*, ...);
50 Qid fsqid(CFid*);
52 /* manipulate unopened fids */
53 CFid *fswalk(CFid*, char*);
54 int fsfopen(CFid*, int);
55 int fsfcreate(CFid*, char*, int, ulong);
57 extern int chatty9pclient;
58 extern int eofkill9pclient;
60 #ifdef __cplusplus
61 }
62 #endif
63 #endif