diff options
author | Miklos Szeredi <miklos@szeredi.hu> | 2004-12-04 00:40:50 +0000 |
---|---|---|
committer | Miklos Szeredi <miklos@szeredi.hu> | 2004-12-04 00:40:50 +0000 |
commit | 0b6a0adc4d44e5b9d0855e257091eec643f3a185 (patch) | |
tree | 7334ed0295c1d8bac701fea6778923bd383225e5 /lib/fuse_i.h | |
parent | aa63b6b0f9d2c2e160554b788b000c5bc6f52309 (diff) | |
download | libfuse-0b6a0adc4d44e5b9d0855e257091eec643f3a185.tar.gz |
backward compatibility
Diffstat (limited to 'lib/fuse_i.h')
-rw-r--r-- | lib/fuse_i.h | 47 |
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); |