aboutsummaryrefslogtreecommitdiffstats
path: root/lib/fuse_i.h
diff options
context:
space:
mode:
authorMiklos Szeredi <miklos@szeredi.hu>2004-12-04 00:40:50 +0000
committerMiklos Szeredi <miklos@szeredi.hu>2004-12-04 00:40:50 +0000
commit0b6a0adc4d44e5b9d0855e257091eec643f3a185 (patch)
tree7334ed0295c1d8bac701fea6778923bd383225e5 /lib/fuse_i.h
parentaa63b6b0f9d2c2e160554b788b000c5bc6f52309 (diff)
downloadlibfuse-0b6a0adc4d44e5b9d0855e257091eec643f3a185.tar.gz
backward compatibility
Diffstat (limited to 'lib/fuse_i.h')
-rw-r--r--lib/fuse_i.h47
1 files changed, 46 insertions, 1 deletions
diff --git a/lib/fuse_i.h b/lib/fuse_i.h
index b9ea903..f88dda1 100644
--- a/lib/fuse_i.h
+++ b/lib/fuse_i.h
@@ -7,6 +7,7 @@
*/
#include "fuse.h"
+#include "fuse_compat.h"
#include <stdio.h>
#include <pthread.h>
@@ -40,10 +41,50 @@ struct node {
int is_hidden;
};
+struct fuse_operations_i {
+ int (*getattr) (const char *, struct stat *);
+ int (*readlink) (const char *, char *, size_t);
+ int (*getdir) (const char *, fuse_dirh_t, fuse_dirfil_t);
+ int (*mknod) (const char *, mode_t, dev_t);
+ int (*mkdir) (const char *, mode_t);
+ int (*unlink) (const char *);
+ int (*rmdir) (const char *);
+ int (*symlink) (const char *, const char *);
+ int (*rename) (const char *, const char *);
+ int (*link) (const char *, const char *);
+ int (*chmod) (const char *, mode_t);
+ int (*chown) (const char *, uid_t, gid_t);
+ int (*truncate) (const char *, off_t);
+ int (*utime) (const char *, struct utimbuf *);
+ union {
+ int (*curr) (const char *, struct fuse_file_info *);
+ int (*compat2) (const char *, int);
+ } open;
+ int (*read) (const char *, char *, size_t, off_t,
+ struct fuse_file_info *);
+ int (*write) (const char *, const char *, size_t, off_t,
+ struct fuse_file_info *);
+ union {
+ int (*curr) (const char *, struct statfs *);
+ int (*compat1) (struct _fuse_statfs_compat1 *);
+ } statfs;
+ int (*flush) (const char *, struct fuse_file_info *);
+ union {
+ int (*curr) (const char *, struct fuse_file_info *);
+ int (*compat2) (const char *, int);
+ } release;
+ int (*fsync) (const char *, int, struct fuse_file_info *);
+ int (*setxattr) (const char *, const char *, const char *, size_t, int);
+ int (*getxattr) (const char *, const char *, char *, size_t);
+ int (*listxattr) (const char *, char *, size_t);
+ int (*removexattr) (const char *, const char *);
+};
+
struct fuse {
int flags;
int fd;
- struct fuse_operations op;
+ struct fuse_operations_i op;
+ int compat;
struct node **name_table;
size_t name_table_size;
struct node **id_table;
@@ -69,3 +110,7 @@ struct fuse_cmd {
char *buf;
size_t buflen;
};
+
+struct fuse *fuse_new_common(int fd, const char *opts,
+ const struct fuse_operations *op,
+ size_t op_size, int compat);