2 FUSE: Filesystem in Userspace
3 Copyright (C) 2001-2007 Miklos Szeredi <miklos@szeredi.hu>
5 This program can be distributed under the terms of the GNU LGPLv2.
6 See the file COPYING.LIB.
9 /* these definitions provide source compatibility to prior versions.
10 Do not include this file directly! */
12 struct fuse_operations_compat25
{
13 int (*getattr
) (const char *, struct stat
*);
14 int (*readlink
) (const char *, char *, size_t);
15 int (*getdir
) (const char *, fuse_dirh_t
, fuse_dirfil_t
);
16 int (*mknod
) (const char *, mode_t
, dev_t
);
17 int (*mkdir
) (const char *, mode_t
);
18 int (*unlink
) (const char *);
19 int (*rmdir
) (const char *);
20 int (*symlink
) (const char *, const char *);
21 int (*rename
) (const char *, const char *);
22 int (*link
) (const char *, const char *);
23 int (*chmod
) (const char *, mode_t
);
24 int (*chown
) (const char *, uid_t
, gid_t
);
25 int (*truncate
) (const char *, off_t
);
26 int (*utime
) (const char *, struct utimbuf
*);
27 int (*open
) (const char *, struct fuse_file_info
*);
28 int (*read
) (const char *, char *, size_t, off_t
,
29 struct fuse_file_info
*);
30 int (*write
) (const char *, const char *, size_t, off_t
,
31 struct fuse_file_info
*);
32 int (*statfs
) (const char *, struct statvfs
*);
33 int (*flush
) (const char *, struct fuse_file_info
*);
34 int (*release
) (const char *, struct fuse_file_info
*);
35 int (*fsync
) (const char *, int, struct fuse_file_info
*);
36 int (*setxattr
) (const char *, const char *, const char *, size_t, int);
37 int (*getxattr
) (const char *, const char *, char *, size_t);
38 int (*listxattr
) (const char *, char *, size_t);
39 int (*removexattr
) (const char *, const char *);
40 int (*opendir
) (const char *, struct fuse_file_info
*);
41 int (*readdir
) (const char *, void *, fuse_fill_dir_t
, off_t
,
42 struct fuse_file_info
*);
43 int (*releasedir
) (const char *, struct fuse_file_info
*);
44 int (*fsyncdir
) (const char *, int, struct fuse_file_info
*);
46 void (*destroy
) (void *);
47 int (*access
) (const char *, int);
48 int (*create
) (const char *, mode_t
, struct fuse_file_info
*);
49 int (*ftruncate
) (const char *, off_t
, struct fuse_file_info
*);
50 int (*fgetattr
) (const char *, struct stat
*, struct fuse_file_info
*);
53 struct fuse
*fuse_new_compat25(int fd
, struct fuse_args
*args
,
54 const struct fuse_operations_compat25
*op
,
57 int fuse_main_real_compat25(int argc
, char *argv
[],
58 const struct fuse_operations_compat25
*op
,
61 struct fuse
*fuse_setup_compat25(int argc
, char *argv
[],
62 const struct fuse_operations_compat25
*op
,
63 size_t op_size
, char **mountpoint
,
64 int *multithreaded
, int *fd
);
66 void fuse_teardown_compat22(struct fuse
*fuse
, int fd
, char *mountpoint
);
69 #include <sys/statfs.h>
71 struct fuse_operations_compat22
{
72 int (*getattr
) (const char *, struct stat
*);
73 int (*readlink
) (const char *, char *, size_t);
74 int (*getdir
) (const char *, fuse_dirh_t
, fuse_dirfil_t
);
75 int (*mknod
) (const char *, mode_t
, dev_t
);
76 int (*mkdir
) (const char *, mode_t
);
77 int (*unlink
) (const char *);
78 int (*rmdir
) (const char *);
79 int (*symlink
) (const char *, const char *);
80 int (*rename
) (const char *, const char *);
81 int (*link
) (const char *, const char *);
82 int (*chmod
) (const char *, mode_t
);
83 int (*chown
) (const char *, uid_t
, gid_t
);
84 int (*truncate
) (const char *, off_t
);
85 int (*utime
) (const char *, struct utimbuf
*);
86 int (*open
) (const char *, struct fuse_file_info_compat
*);
87 int (*read
) (const char *, char *, size_t, off_t
,
88 struct fuse_file_info_compat
*);
89 int (*write
) (const char *, const char *, size_t, off_t
,
90 struct fuse_file_info_compat
*);
91 int (*statfs
) (const char *, struct statfs
*);
92 int (*flush
) (const char *, struct fuse_file_info_compat
*);
93 int (*release
) (const char *, struct fuse_file_info_compat
*);
94 int (*fsync
) (const char *, int, struct fuse_file_info_compat
*);
95 int (*setxattr
) (const char *, const char *, const char *, size_t, int);
96 int (*getxattr
) (const char *, const char *, char *, size_t);
97 int (*listxattr
) (const char *, char *, size_t);
98 int (*removexattr
) (const char *, const char *);
99 int (*opendir
) (const char *, struct fuse_file_info_compat
*);
100 int (*readdir
) (const char *, void *, fuse_fill_dir_t
, off_t
,
101 struct fuse_file_info_compat
*);
102 int (*releasedir
) (const char *, struct fuse_file_info_compat
*);
103 int (*fsyncdir
) (const char *, int, struct fuse_file_info_compat
*);
104 void *(*init
) (void);
105 void (*destroy
) (void *);
108 struct fuse
*fuse_new_compat22(int fd
, const char *opts
,
109 const struct fuse_operations_compat22
*op
,
112 struct fuse
*fuse_setup_compat22(int argc
, char *argv
[],
113 const struct fuse_operations_compat22
*op
,
114 size_t op_size
, char **mountpoint
,
115 int *multithreaded
, int *fd
);
117 int fuse_main_real_compat22(int argc
, char *argv
[],
118 const struct fuse_operations_compat22
*op
,
121 typedef int (*fuse_dirfil_t_compat
) (fuse_dirh_t h
, const char *name
, int type
);
122 struct fuse_operations_compat2
{
123 int (*getattr
) (const char *, struct stat
*);
124 int (*readlink
) (const char *, char *, size_t);
125 int (*getdir
) (const char *, fuse_dirh_t
, fuse_dirfil_t_compat
);
126 int (*mknod
) (const char *, mode_t
, dev_t
);
127 int (*mkdir
) (const char *, mode_t
);
128 int (*unlink
) (const char *);
129 int (*rmdir
) (const char *);
130 int (*symlink
) (const char *, const char *);
131 int (*rename
) (const char *, const char *);
132 int (*link
) (const char *, const char *);
133 int (*chmod
) (const char *, mode_t
);
134 int (*chown
) (const char *, uid_t
, gid_t
);
135 int (*truncate
) (const char *, off_t
);
136 int (*utime
) (const char *, struct utimbuf
*);
137 int (*open
) (const char *, int);
138 int (*read
) (const char *, char *, size_t, off_t
);
139 int (*write
) (const char *, const char *, size_t, off_t
);
140 int (*statfs
) (const char *, struct statfs
*);
141 int (*flush
) (const char *);
142 int (*release
) (const char *, int);
143 int (*fsync
) (const char *, int);
144 int (*setxattr
) (const char *, const char *, const char *,
146 int (*getxattr
) (const char *, const char *, char *, size_t);
147 int (*listxattr
) (const char *, char *, size_t);
148 int (*removexattr
) (const char *, const char *);
151 int fuse_main_compat2(int argc
, char *argv
[],
152 const struct fuse_operations_compat2
*op
);
154 struct fuse
*fuse_new_compat2(int fd
, const char *opts
,
155 const struct fuse_operations_compat2
*op
);
157 struct fuse
*fuse_setup_compat2(int argc
, char *argv
[],
158 const struct fuse_operations_compat2
*op
,
159 char **mountpoint
, int *multithreaded
, int *fd
);
161 struct fuse_statfs_compat1
{
170 struct fuse_operations_compat1
{
171 int (*getattr
) (const char *, struct stat
*);
172 int (*readlink
) (const char *, char *, size_t);
173 int (*getdir
) (const char *, fuse_dirh_t
, fuse_dirfil_t_compat
);
174 int (*mknod
) (const char *, mode_t
, dev_t
);
175 int (*mkdir
) (const char *, mode_t
);
176 int (*unlink
) (const char *);
177 int (*rmdir
) (const char *);
178 int (*symlink
) (const char *, const char *);
179 int (*rename
) (const char *, const char *);
180 int (*link
) (const char *, const char *);
181 int (*chmod
) (const char *, mode_t
);
182 int (*chown
) (const char *, uid_t
, gid_t
);
183 int (*truncate
) (const char *, off_t
);
184 int (*utime
) (const char *, struct utimbuf
*);
185 int (*open
) (const char *, int);
186 int (*read
) (const char *, char *, size_t, off_t
);
187 int (*write
) (const char *, const char *, size_t, off_t
);
188 int (*statfs
) (struct fuse_statfs_compat1
*);
189 int (*release
) (const char *, int);
190 int (*fsync
) (const char *, int);
193 #define FUSE_DEBUG_COMPAT1 (1 << 1)
195 struct fuse
*fuse_new_compat1(int fd
, int flags
,
196 const struct fuse_operations_compat1
*op
);
198 void fuse_main_compat1(int argc
, char *argv
[],
199 const struct fuse_operations_compat1
*op
);
201 #endif /* __FreeBSD__ */