aboutsummaryrefslogtreecommitdiffstats
path: root/fuse_i.h
diff options
context:
space:
mode:
authorMiklos Szeredi <miklos@szeredi.hu>2001-10-24 14:37:13 +0000
committerMiklos Szeredi <miklos@szeredi.hu>2001-10-24 14:37:13 +0000
commit79b52f63303c15d4545a7464775f4b1beab8d2c9 (patch)
tree7f3c12670af489f58740408ad755e775e27803ef /fuse_i.h
parentd8318555890588b0982749fdd23826d9ddb02098 (diff)
downloadlibfuse-79b52f63303c15d4545a7464775f4b1beab8d2c9.tar.gz
improvements
Diffstat (limited to 'fuse_i.h')
-rw-r--r--fuse_i.h37
1 files changed, 36 insertions, 1 deletions
diff --git a/fuse_i.h b/fuse_i.h
index 5e1cc1c..70e149c 100644
--- a/fuse_i.h
+++ b/fuse_i.h
@@ -7,6 +7,8 @@
*/
#include <linux/fs.h>
+#include <linux/list.h>
+#include <linux/spinlock.h>
#define FUSE_VERSION "0.1"
@@ -23,6 +25,35 @@ struct fuse_conn {
/** The opened client device */
struct file *file;
+
+ /** The client wait queue */
+ wait_queue_head_t waitq;
+
+ /** The list of pending requests */
+ struct list_head pending;
+
+ /** The list of requests being processed */
+ struct list_head processing;
+
+ /** The number of outstanding requests */
+ int outstanding;
+
+ /** Connnection number (for debuging) */
+ int id;
+};
+
+/**
+ * A filesystem request
+ */
+struct fuse_req {
+ /** The request list */
+ struct list_head list;
+
+ /** The size of the data */
+ size_t size;
+
+ /** A pointer to the data */
+ void *data;
};
/**
@@ -31,11 +62,15 @@ struct fuse_conn {
extern struct proc_dir_entry *proc_fuse_dev;
/**
+ * The lock to protect fuses structures
+ */
+extern spinlock_t fuse_lock;
+
+/**
* Fill in the directory operations
*/
void fuse_dir_init(struct inode *inode);
-
/**
* Check if the connection can be released, and if yes, then free the
* connection structure