Blob


1 #include <u.h>
2 #include <errno.h>
3 #include <sys/stat.h>
4 #include <sys/uio.h>
5 #include <sys/socket.h>
6 #include <sys/select.h>
7 #include <libc.h>
8 #include <fcall.h>
9 #include <thread.h>
10 #include <9pclient.h>
12 #if defined(__APPLE__)
13 #define __FreeBSD__ 10
14 #endif
16 #include "fuse_kernel.h"
18 /* Somehow the FUSE guys forgot to define this one! */
19 struct fuse_create_out {
20 struct fuse_entry_out e;
21 struct fuse_open_out o;
22 };
24 typedef struct FuseMsg FuseMsg;
25 struct FuseMsg
26 {
27 FuseMsg *next;
28 uchar *buf;
29 int nbuf;
30 struct fuse_in_header *hdr; /* = buf */
31 void *tx; /* = hdr+1 */
32 };
34 extern int debug;
36 extern int fusefd;
37 extern int fuseeof;
38 extern int fusebufsize;
39 extern int fusemaxwrite;
40 extern FuseMsg *fusemsglist;
41 extern char *fusemtpt;
43 void freefusemsg(FuseMsg *m);
44 int fusefmt(Fmt*);
45 void initfuse(char *mtpt);
46 void waitfuse(void);
47 FuseMsg* readfusemsg(void);
48 void replyfuse(FuseMsg *m, void *arg, int narg);
49 void replyfuseerrno(FuseMsg *m, int e);
50 void replyfuseerrstr(FuseMsg*);
51 void request9p(Fcall *tx);
53 void* emalloc(uint n);
54 void* erealloc(void *p, uint n);
55 char* estrdup(char *p);
57 int errstr2errno(void);
58 void unmountatexit(void);