10#include "fuse_lowlevel.h"
27 struct fuse_session *se;
34 unsigned int ioctl_64bit : 1;
44 struct fuse_req *next;
45 struct fuse_req *prev;
48struct fuse_notify_req {
51 const void *,
const struct fuse_buf *);
52 struct fuse_notify_req *next;
53 struct fuse_notify_req *prev;
60 struct fuse_custom_io *io;
61 struct mount_opts *mo;
66 struct cuse_data *cuse_data;
71 struct fuse_req interrupts;
74 pthread_key_t pipe_key;
75 int broken_splice_nonblock;
77 struct fuse_notify_req notify_list;
105 struct fusemod_so *so;
117#if FUSE_USE_VERSION >= FUSE_MAKE_VERSION(3, 12)
170struct fuse_chan *fuse_chan_get(
struct fuse_chan *ch);
177void fuse_chan_put(
struct fuse_chan *ch);
179struct mount_opts *parse_mount_opts(
struct fuse_args *args);
180void destroy_mount_opts(
struct mount_opts *mo);
181void fuse_mount_version(
void);
182unsigned get_max_read(
struct mount_opts *o);
183void fuse_kern_unmount(
const char *mountpoint,
int fd);
184int fuse_kern_mount(
const char *mountpoint,
struct mount_opts *mo);
186int fuse_send_reply_iov_nofree(
fuse_req_t req,
int error,
struct iovec *iov,
192int fuse_start_thread(pthread_t *thread_id,
void *(*func)(
void *),
void *arg);
194void fuse_buf_free(
struct fuse_buf *buf);
196int fuse_session_receive_buf_internal(
struct fuse_session *se,
198 struct fuse_chan *ch);
199void fuse_session_process_buf_internal(
struct fuse_session *se,
201 struct fuse_chan *ch);
204 size_t op_size,
void *private_data);
206int fuse_session_loop_mt_312(
struct fuse_session *se,
struct fuse_loop_config *config);
222#define FUSE_DEFAULT_MAX_PAGES_LIMIT 256
223#define FUSE_DEFAULT_MAX_PAGES_PER_REQ 32
226#define FUSE_BUFFER_HEADER_SIZE 0x1000
231static inline int convert_to_conn_want_ext(
struct fuse_conn_info *conn,
232 uint64_t want_ext_default,
233 uint32_t want_default)
244 if (conn->
want != want_default &&
246 if (conn->
want_ext != want_ext_default) {
248 "fuse: both 'want' and 'want_ext' are set\n");
struct fuse_fs *(* fuse_module_factory_t)(struct fuse_args *args, struct fuse_fs *fs[])
void fuse_log(enum fuse_log_level level, const char *fmt,...)
void(* fuse_interrupt_func_t)(fuse_req_t req, void *data)
struct fuse_req * fuse_req_t