summaryrefslogtreecommitdiffstats
path: root/fuse/fuse_i.h
diff options
context:
space:
mode:
Diffstat (limited to 'fuse/fuse_i.h')
-rw-r--r--fuse/fuse_i.h31
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);