2 FUSE: Filesystem in Userspace
3 Copyright (C) 2001-2007 Miklos Szeredi <miklos@szeredi.hu>
5 This program can be distributed under the terms of the GNU LGPLv2.
6 See the file COPYING.LIB
10 #include "fuse_lowlevel.h"
16 struct fuse_session_ops op;
18 int (*receive_buf)(struct fuse_session *se, struct fuse_buf *buf,
19 struct fuse_chan **chp);
21 void (*process_buf)(void *data, const struct fuse_buf *buf,
22 struct fuse_chan *ch);
39 unsigned int ioctl_64bit : 1;
45 fuse_interrupt_func_t func;
49 struct fuse_req *next;
50 struct fuse_req *prev;
53 struct fuse_notify_req {
55 void (*reply)(struct fuse_notify_req *, fuse_req_t, fuse_ino_t,
56 const void *, const struct fuse_buf *);
57 struct fuse_notify_req *next;
58 struct fuse_notify_req *prev;
65 int no_remote_posix_lock;
74 struct fuse_lowlevel_ops op;
76 struct cuse_data *cuse_data;
79 struct fuse_conn_info conn;
81 struct fuse_req interrupts;
84 pthread_key_t pipe_key;
85 int broken_splice_nonblock;
87 struct fuse_notify_req notify_list;
96 struct fuse *fuse_new_common(struct fuse_chan *ch, struct fuse_args *args,
97 const struct fuse_operations *op,
98 size_t op_size, void *user_data, int compat);
100 int fuse_sync_compat_args(struct fuse_args *args);
102 struct fuse_chan *fuse_kern_chan_new(int fd);
104 struct fuse_session *fuse_lowlevel_new_common(struct fuse_args *args,
105 const struct fuse_lowlevel_ops *op,
106 size_t op_size, void *userdata);
108 void fuse_kern_unmount_compat22(const char *mountpoint);
109 void fuse_kern_unmount(const char *mountpoint, int fd);
110 int fuse_kern_mount(const char *mountpoint, struct fuse_args *args);
112 int fuse_send_reply_iov_nofree(fuse_req_t req, int error, struct iovec *iov,
114 void fuse_free_req(fuse_req_t req);
117 struct fuse *fuse_setup_common(int argc, char *argv[],
118 const struct fuse_operations *op,
126 void cuse_lowlevel_init(fuse_req_t req, fuse_ino_t nodeide, const void *inarg);
128 int fuse_start_thread(pthread_t *thread_id, void *(*func)(void *), void *arg);