12#ifndef CUSE_LOWLEVEL_H_
13#define CUSE_LOWLEVEL_H_
15#ifndef FUSE_USE_VERSION
16#define FUSE_USE_VERSION 29
29#define CUSE_UNRESTRICTED_IOCTL (1 << 0)
36 unsigned dev_info_argc;
37 const char **dev_info_argv;
49struct cuse_lowlevel_ops {
50 void (*init) (
void *userdata,
struct fuse_conn_info *conn);
51 void (*init_done) (
void *userdata);
52 void (*destroy) (
void *userdata);
53 void (*open) (
fuse_req_t req,
struct fuse_file_info *fi);
54 void (*read) (
fuse_req_t req,
size_t size, off_t off,
55 struct fuse_file_info *fi);
56 void (*write) (
fuse_req_t req,
const char *buf,
size_t size, off_t off,
57 struct fuse_file_info *fi);
58 void (*flush) (
fuse_req_t req,
struct fuse_file_info *fi);
59 void (*release) (
fuse_req_t req,
struct fuse_file_info *fi);
60 void (*fsync) (
fuse_req_t req,
int datasync,
struct fuse_file_info *fi);
61 void (*ioctl) (
fuse_req_t req,
int cmd,
void *arg,
62 struct fuse_file_info *fi,
unsigned int flags,
63 const void *in_buf,
size_t in_bufsz,
size_t out_bufsz);
64 void (*poll) (
fuse_req_t req,
struct fuse_file_info *fi,
65 struct fuse_pollhandle *ph);
68struct fuse_session *cuse_lowlevel_new(
struct fuse_args *args,
69 const struct cuse_info *ci,
70 const struct cuse_lowlevel_ops *clop,
73struct fuse_session *cuse_lowlevel_setup(
int argc,
char *argv[],
74 const struct cuse_info *ci,
75 const struct cuse_lowlevel_ops *clop,
76 int *multithreaded,
void *userdata);
78void cuse_lowlevel_teardown(
struct fuse_session *se);
80int cuse_lowlevel_main(
int argc,
char *argv[],
const struct cuse_info *ci,
81 const struct cuse_lowlevel_ops *clop,
void *userdata);
struct fuse_req * fuse_req_t