#ifndef __FUSEFS_H__
#define __FUSEFS_H__
#define FUSEFS_OPENDEVS 1
#define FUSEFS_INFBUFS 2
#define FUSEFS_WAITFBUFS 3
#define FUSEFS_POOL_NBPAGES 4
#define FUSEFS_MAXID 5
#define FUSEFS_NAMES { \
{ 0, 0}, \
{ "fusefs_open_devices", CTLTYPE_INT }, \
{ "fusefs_fbufs_in", CTLTYPE_INT }, \
{ "fusefs_fbufs_wait", CTLTYPE_INT }, \
{ "fusefs_pool_pages", CTLTYPE_INT }, \
}
#ifdef _KERNEL
struct fuse_msg;
struct fusefs_mnt {
struct mount *mp;
uint32_t undef_op;
int max_read;
int sess_init;
int allow_other;
dev_t dev;
};
#define UNDEF_ACCESS 1<<0
#define UNDEF_MKDIR 1<<1
#define UNDEF_CREATE 1<<2
#define UNDEF_LINK 1<<3
#define UNDEF_READLINK 1<<4
#define UNDEF_RMDIR 1<<5
#define UNDEF_REMOVE 1<<6
#define UNDEF_SETATTR 1<<7
#define UNDEF_RENAME 1<<8
#define UNDEF_SYMLINK 1<<9
#define UNDEF_MKNOD 1<<10
#define UNDEF_FLUSH 1<<11
#define UNDEF_FSYNC 1<<12
extern const struct vops fusefs_vops;
extern struct pool fusefs_fbuf_pool;
int fusefs_file_open(struct fusefs_mnt *, struct fusefs_node *, enum fufh_type,
int, int, struct proc *);
int fusefs_file_close(struct fusefs_mnt *, struct fusefs_node *,
enum fufh_type, int, int, struct proc *);
void fuse_device_cleanup(dev_t);
void fuse_device_queue_fbuf(dev_t, struct fusebuf *);
void fuse_device_set_fmp(struct fusefs_mnt *, int);
#define FUSE_ROOTINO ((ino_t)1)
#define VFSTOFUSEFS(mp) ((struct fusefs_mnt *)((mp)->mnt_data))
#endif
#endif