aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorMiklos Szeredi <miklos@szeredi.hu>2005-09-09 16:10:29 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2005-09-09 17:03:45 -0400
commit9e6268db496a2592e89457537ea54a496feabb77 (patch)
treee01d0d7585886fd318b6f16de9329349a629e3f8 /include
parente5e5558e923f35839108a12718494ecb73fb782f (diff)
[PATCH] FUSE - read-write operations
This patch adds the write filesystem operations of FUSE. The following operations are added: o setattr o symlink o mknod o mkdir o create o unlink o rmdir o rename o link Signed-off-by: Miklos Szeredi <miklos@szeredi.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/fuse.h43
1 files changed, 41 insertions, 2 deletions
diff --git a/include/linux/fuse.h b/include/linux/fuse.h
index 21b9ba16f8d5..19d69a3e1623 100644
--- a/include/linux/fuse.h
+++ b/include/linux/fuse.h
@@ -11,7 +11,7 @@
11#include <asm/types.h> 11#include <asm/types.h>
12 12
13/** Version number of this interface */ 13/** Version number of this interface */
14#define FUSE_KERNEL_VERSION 6 14#define FUSE_KERNEL_VERSION 7
15 15
16/** Minor version number of this interface */ 16/** Minor version number of this interface */
17#define FUSE_KERNEL_MINOR_VERSION 1 17#define FUSE_KERNEL_MINOR_VERSION 1
@@ -52,12 +52,28 @@ struct fuse_kstatfs {
52 __u32 namelen; 52 __u32 namelen;
53}; 53};
54 54
55#define FATTR_MODE (1 << 0)
56#define FATTR_UID (1 << 1)
57#define FATTR_GID (1 << 2)
58#define FATTR_SIZE (1 << 3)
59#define FATTR_ATIME (1 << 4)
60#define FATTR_MTIME (1 << 5)
61#define FATTR_CTIME (1 << 6)
62
55enum fuse_opcode { 63enum fuse_opcode {
56 FUSE_LOOKUP = 1, 64 FUSE_LOOKUP = 1,
57 FUSE_FORGET = 2, /* no reply */ 65 FUSE_FORGET = 2, /* no reply */
58 FUSE_GETATTR = 3, 66 FUSE_GETATTR = 3,
67 FUSE_SETATTR = 4,
59 FUSE_READLINK = 5, 68 FUSE_READLINK = 5,
69 FUSE_SYMLINK = 6,
60 FUSE_GETDIR = 7, 70 FUSE_GETDIR = 7,
71 FUSE_MKNOD = 8,
72 FUSE_MKDIR = 9,
73 FUSE_UNLINK = 10,
74 FUSE_RMDIR = 11,
75 FUSE_RENAME = 12,
76 FUSE_LINK = 13,
61 FUSE_STATFS = 17, 77 FUSE_STATFS = 17,
62 FUSE_INIT = 26 78 FUSE_INIT = 26
63}; 79};
@@ -66,6 +82,7 @@ enum fuse_opcode {
66#define FUSE_MAX_IN 8192 82#define FUSE_MAX_IN 8192
67 83
68#define FUSE_NAME_MAX 1024 84#define FUSE_NAME_MAX 1024
85#define FUSE_SYMLINK_MAX 4096
69 86
70struct fuse_entry_out { 87struct fuse_entry_out {
71 __u64 nodeid; /* Inode ID */ 88 __u64 nodeid; /* Inode ID */
@@ -79,7 +96,7 @@ struct fuse_entry_out {
79}; 96};
80 97
81struct fuse_forget_in { 98struct fuse_forget_in {
82 __u64 version; 99 __u64 nlookup;
83}; 100};
84 101
85struct fuse_attr_out { 102struct fuse_attr_out {
@@ -93,6 +110,28 @@ struct fuse_getdir_out {
93 __u32 fd; 110 __u32 fd;
94}; 111};
95 112
113struct fuse_mknod_in {
114 __u32 mode;
115 __u32 rdev;
116};
117
118struct fuse_mkdir_in {
119 __u32 mode;
120};
121
122struct fuse_rename_in {
123 __u64 newdir;
124};
125
126struct fuse_link_in {
127 __u64 oldnodeid;
128};
129
130struct fuse_setattr_in {
131 __u32 valid;
132 struct fuse_attr attr;
133};
134
96struct fuse_statfs_out { 135struct fuse_statfs_out {
97 struct fuse_kstatfs st; 136 struct fuse_kstatfs st;
98}; 137};