diff options
Diffstat (limited to 'fuse/fuse_i.h')
-rw-r--r-- | fuse/fuse_i.h | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/fuse/fuse_i.h b/fuse/fuse_i.h index 6285c952e..78f14677a 100644 --- a/fuse/fuse_i.h +++ b/fuse/fuse_i.h @@ -8,7 +8,6 @@ #include "fuse.h" #include "fuse_lowlevel.h" -#include <pthread.h> struct fuse_chan; struct fuse_ll; @@ -16,6 +15,12 @@ struct fuse_ll; struct fuse_session { struct fuse_session_ops op; + int (*receive_buf)(struct fuse_session *se, struct fuse_buf *buf, + struct fuse_chan **chp); + + void (*process_buf)(void *data, const struct fuse_buf *buf, + struct fuse_chan *ch); + void *data; volatile int exited; @@ -31,6 +36,7 @@ struct fuse_req { struct fuse_ctx ctx; struct fuse_chan *ch; int interrupted; + unsigned int ioctl_64bit : 1; union { struct { uint64_t unique; @@ -44,12 +50,27 @@ struct fuse_req { struct fuse_req *prev; }; +struct fuse_notify_req { + uint64_t unique; + void (*reply)(struct fuse_notify_req *, fuse_req_t, fuse_ino_t, + const void *, const struct fuse_buf *); + struct fuse_notify_req *next; + struct fuse_notify_req *prev; +}; + struct fuse_ll { int debug; int allow_root; int atomic_o_trunc; - int no_remote_lock; + int no_remote_posix_lock; + int no_remote_flock; int big_writes; + int splice_write; + int splice_move; + int splice_read; + int no_splice_write; + int no_splice_move; + int no_splice_read; struct fuse_lowlevel_ops op; int got_init; struct cuse_data *cuse_data; @@ -60,6 +81,10 @@ struct fuse_ll { struct fuse_req interrupts; pthread_mutex_t lock; int got_destroy; + pthread_key_t pipe_key; + int broken_splice_nonblock; + uint64_t notify_ctr; + struct fuse_notify_req notify_list; }; struct fuse_cmd { @@ -99,3 +124,5 @@ struct fuse *fuse_setup_common(int argc, char *argv[], int compat); void cuse_lowlevel_init(fuse_req_t req, fuse_ino_t nodeide, const void *inarg); + +int fuse_start_thread(pthread_t *thread_id, void *(*func)(void *), void *arg); |