blob: d09323844da7f7745d13d08ca02b88fd8a30ac8c [file] [log] [blame]
bigbiff bigbiff9c754052013-01-09 09:09:08 -05001/*
2 FUSE: Filesystem in Userspace
3 Copyright (C) 2001-2007 Miklos Szeredi <miklos@szeredi.hu>
4
5 This program can be distributed under the terms of the GNU LGPLv2.
6 See the file COPYING.LIB.
7*/
8
9/* these definitions provide source compatibility to prior versions.
10 Do not include this file directly! */
11
12struct 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 *, off64_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, off64_t,
29 struct fuse_file_info *);
30 int (*write) (const char *, const char *, size_t, off64_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, off64_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 *);
45 void *(*init) (void);
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 *, off64_t, struct fuse_file_info *);
50 int (*fgetattr) (const char *, struct stat *, struct fuse_file_info *);
51};
52
53struct fuse *fuse_new_compat25(int fd, struct fuse_args *args,
54 const struct fuse_operations_compat25 *op,
55 size_t op_size);
56
57int fuse_main_real_compat25(int argc, char *argv[],
58 const struct fuse_operations_compat25 *op,
59 size_t op_size);
60
61struct 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);
65
66void fuse_teardown_compat22(struct fuse *fuse, int fd, char *mountpoint);
67
Dees_Troye34c1332013-02-06 19:13:00 +000068#if !defined(__FreeBSD__) && !defined(__NetBSD__)
bigbiff bigbiff9c754052013-01-09 09:09:08 -050069#include <sys/statfs.h>
70
71struct 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 *, off64_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, off64_t,
88 struct fuse_file_info_compat *);
89 int (*write) (const char *, const char *, size_t, off64_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, off64_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 *);
106};
107
108struct fuse *fuse_new_compat22(int fd, const char *opts,
109 const struct fuse_operations_compat22 *op,
110 size_t op_size);
111
112struct 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);
116
117int fuse_main_real_compat22(int argc, char *argv[],
118 const struct fuse_operations_compat22 *op,
119 size_t op_size);
120
121typedef int (*fuse_dirfil_t_compat) (fuse_dirh_t h, const char *name, int type);
122struct 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 *, off64_t);
136 int (*utime) (const char *, struct utimbuf *);
137 int (*open) (const char *, int);
138 int (*read) (const char *, char *, size_t, off64_t);
139 int (*write) (const char *, const char *, size_t, off64_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 *,
145 size_t, int);
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 *);
149};
150
151int fuse_main_compat2(int argc, char *argv[],
152 const struct fuse_operations_compat2 *op);
153
154struct fuse *fuse_new_compat2(int fd, const char *opts,
155 const struct fuse_operations_compat2 *op);
156
157struct fuse *fuse_setup_compat2(int argc, char *argv[],
158 const struct fuse_operations_compat2 *op,
159 char **mountpoint, int *multithreaded, int *fd);
160
161struct fuse_statfs_compat1 {
162 long block_size;
163 long blocks;
164 long blocks_free;
165 long files;
166 long files_free;
167 long namelen;
168};
169
170struct 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 *, off64_t);
184 int (*utime) (const char *, struct utimbuf *);
185 int (*open) (const char *, int);
186 int (*read) (const char *, char *, size_t, off64_t);
187 int (*write) (const char *, const char *, size_t, off64_t);
188 int (*statfs) (struct fuse_statfs_compat1 *);
189 int (*release) (const char *, int);
190 int (*fsync) (const char *, int);
191};
192
193#define FUSE_DEBUG_COMPAT1 (1 << 1)
194
195struct fuse *fuse_new_compat1(int fd, int flags,
196 const struct fuse_operations_compat1 *op);
197
198void fuse_main_compat1(int argc, char *argv[],
199 const struct fuse_operations_compat1 *op);
200
Dees_Troye34c1332013-02-06 19:13:00 +0000201#endif /* __FreeBSD__ || __NetBSD__ */