9 #ifndef FUSE_LOWLEVEL_H_    10 #define FUSE_LOWLEVEL_H_    21 #ifndef FUSE_USE_VERSION    22 #error FUSE_USE_VERSION not defined    29 #include <sys/types.h>    31 #include <sys/statvfs.h>    43 #define FUSE_ROOT_ID 1   125 struct fuse_forget_data {
   131 #define FUSE_SET_ATTR_MODE      (1 << 0)   132 #define FUSE_SET_ATTR_UID       (1 << 1)   133 #define FUSE_SET_ATTR_GID       (1 << 2)   134 #define FUSE_SET_ATTR_SIZE      (1 << 3)   135 #define FUSE_SET_ATTR_ATIME     (1 << 4)   136 #define FUSE_SET_ATTR_MTIME     (1 << 5)   137 #define FUSE_SET_ATTR_ATIME_NOW (1 << 7)   138 #define FUSE_SET_ATTR_MTIME_NOW (1 << 8)   139 #define FUSE_SET_ATTR_CTIME     (1 << 10)   202         void (*destroy) (
void *userdata);
   215         void (*lookup) (fuse_req_t req, fuse_ino_t parent, 
const char *name);
   253         void (*forget) (fuse_req_t req, fuse_ino_t 
ino, uint64_t nlookup);
   274         void (*getattr) (fuse_req_t req, fuse_ino_t 
ino,
   305         void (*setattr) (fuse_req_t req, fuse_ino_t 
ino, 
struct stat *
attr,
   318         void (*readlink) (fuse_req_t req, fuse_ino_t 
ino);
   336         void (*mknod) (fuse_req_t req, fuse_ino_t parent, 
const char *name,
   337                        mode_t mode, dev_t rdev);
   351         void (*mkdir) (fuse_req_t req, fuse_ino_t parent, 
const char *name,
   369         void (*unlink) (fuse_req_t req, fuse_ino_t parent, 
const char *name);
   386         void (*rmdir) (fuse_req_t req, fuse_ino_t parent, 
const char *name);
   400         void (*symlink) (fuse_req_t req, 
const char *link, fuse_ino_t parent,
   432         void (*rename) (fuse_req_t req, fuse_ino_t parent, 
const char *name,
   433                         fuse_ino_t newparent, 
const char *newname,
   448         void (*link) (fuse_req_t req, fuse_ino_t 
ino, fuse_ino_t newparent,
   449                       const char *newname);
   507         void (*open) (fuse_req_t req, fuse_ino_t 
ino,
   535         void (*read) (fuse_req_t req, fuse_ino_t 
ino, 
size_t size, off_t off,
   564         void (*write) (fuse_req_t req, fuse_ino_t 
ino, 
const char *buf,
   633         void (*release) (fuse_req_t req, fuse_ino_t 
ino,
   655         void (*fsync) (fuse_req_t req, fuse_ino_t 
ino, 
int datasync,
   680         void (*opendir) (fuse_req_t req, fuse_ino_t 
ino,
   726         void (*readdir) (fuse_req_t req, fuse_ino_t 
ino, 
size_t size, off_t off,
   745         void (*releasedir) (fuse_req_t req, fuse_ino_t 
ino,
   770         void (*fsyncdir) (fuse_req_t req, fuse_ino_t 
ino, 
int datasync,
   783         void (*statfs) (fuse_req_t req, fuse_ino_t 
ino);
   796         void (*setxattr) (fuse_req_t req, fuse_ino_t 
ino, 
const char *name,
   797                           const char *value, 
size_t size, 
int flags);
   827         void (*getxattr) (fuse_req_t req, fuse_ino_t 
ino, 
const char *name,
   858         void (*listxattr) (fuse_req_t req, fuse_ino_t 
ino, 
size_t size);
   875         void (*removexattr) (fuse_req_t req, fuse_ino_t 
ino, 
const char *name);
   897         void (*access) (fuse_req_t req, fuse_ino_t 
ino, 
int mask);
   926         void (*create) (fuse_req_t req, fuse_ino_t parent, 
const char *name,
   941         void (*getlk) (fuse_req_t req, fuse_ino_t 
ino,
   966         void (*setlk) (fuse_req_t req, fuse_ino_t 
ino,
   968                        struct flock *lock, 
int sleep);
   990         void (*bmap) (fuse_req_t req, fuse_ino_t 
ino, 
size_t blocksize,
  1021         void (*ioctl) (fuse_req_t req, fuse_ino_t 
ino, 
unsigned int cmd,
  1023                        const void *in_buf, 
size_t in_bufsz, 
size_t out_bufsz);
  1055                       struct fuse_pollhandle *ph);
  1084         void (*write_buf) (fuse_req_t req, fuse_ino_t 
ino,
  1100         void (*retrieve_reply) (fuse_req_t req, 
void *cookie, fuse_ino_t 
ino,
  1114         void (*forget_multi) (fuse_req_t req, 
size_t count,
  1115                               struct fuse_forget_data *forgets);
  1132         void (*flock) (fuse_req_t req, fuse_ino_t 
ino,
  1155         void (*fallocate) (fuse_req_t req, fuse_ino_t 
ino, 
int mode,
  1183         void (*readdirplus) (fuse_req_t req, fuse_ino_t 
ino, 
size_t size, off_t off,
  1216         void (*copy_file_range) (fuse_req_t req, fuse_ino_t ino_in,
  1218                                  fuse_ino_t ino_out, off_t off_out,
  1240         void (*lseek) (fuse_req_t req, fuse_ino_t 
ino, off_t off, 
int whence,
  1378 int fuse_reply_buf(fuse_req_t req, 
const char *buf, 
size_t size);
  1437 int fuse_reply_iov(fuse_req_t req, 
const struct iovec *iov, 
int count);
  1519                          const char *name, 
const struct stat *stbuf,
  1555                            const struct iovec *in_iov, 
size_t in_count,
  1556                            const struct iovec *out_iov, 
size_t out_count);
  1569 int fuse_reply_ioctl(fuse_req_t req, 
int result, 
const void *buf, 
size_t size);
  1642                                      off_t off, off_t len);
  1670                                      const char *name, 
size_t namelen);
  1701                                 fuse_ino_t parent, fuse_ino_t child,
  1702                                 const char *name, 
size_t namelen);
  1762                                   size_t size, off_t offset, 
void *cookie);
  1865 struct fuse_cmdline_opts {
  1869         int nodefault_subtype;
  1874         unsigned int max_idle_threads;
  1896                        struct fuse_cmdline_opts *opts);
  1928                                       size_t op_size, 
void *userdata);
  1975 #if FUSE_USE_VERSION < 32  1977 #define fuse_session_loop_mt(se, clone_fd) fuse_session_loop_mt_31(se, clone_fd)  1979 int fuse_session_loop_mt(
struct fuse_session *se, 
struct fuse_loop_config *config);
 void fuse_req_interrupt_func(fuse_req_t req, fuse_interrupt_func_t func, void *data)
void fuse_cmdline_help(void)
int fuse_session_mount(struct fuse_session *se, const char *mountpoint)
int fuse_lowlevel_notify_inval_entry(struct fuse_session *se, fuse_ino_t parent, const char *name, size_t namelen)
struct fuse_req * fuse_req_t
int fuse_reply_ioctl_iov(fuse_req_t req, int result, const struct iovec *iov, int count)
int fuse_session_exited(struct fuse_session *se)
void fuse_reply_none(fuse_req_t req)
int fuse_session_receive_buf(struct fuse_session *se, struct fuse_buf *buf)
void fuse_session_process_buf(struct fuse_session *se, const struct fuse_buf *buf)
int fuse_reply_attr(fuse_req_t req, const struct stat *attr, double attr_timeout)
int fuse_reply_lock(fuse_req_t req, const struct flock *lock)
int fuse_reply_buf(fuse_req_t req, const char *buf, size_t size)
int fuse_reply_create(fuse_req_t req, const struct fuse_entry_param *e, const struct fuse_file_info *fi)
int fuse_reply_xattr(fuse_req_t req, size_t count)
int fuse_lowlevel_notify_inval_inode(struct fuse_session *se, fuse_ino_t ino, off_t off, off_t len)
void fuse_lowlevel_version(void)
int fuse_lowlevel_notify_store(struct fuse_session *se, fuse_ino_t ino, off_t offset, struct fuse_bufvec *bufv, enum fuse_buf_copy_flags flags)
int fuse_reply_write(fuse_req_t req, size_t count)
int fuse_reply_lseek(fuse_req_t req, off_t off)
int fuse_lowlevel_notify_poll(struct fuse_pollhandle *ph)
int fuse_reply_ioctl_retry(fuse_req_t req, const struct iovec *in_iov, size_t in_count, const struct iovec *out_iov, size_t out_count)
int fuse_session_loop(struct fuse_session *se)
int fuse_session_loop_mt_31(struct fuse_session *se, int clone_fd)
int fuse_parse_cmdline(struct fuse_args *args, struct fuse_cmdline_opts *opts)
struct fuse_session * fuse_session_new(struct fuse_args *args, const struct fuse_lowlevel_ops *op, size_t op_size, void *userdata)
int fuse_lowlevel_notify_retrieve(struct fuse_session *se, fuse_ino_t ino, size_t size, off_t offset, void *cookie)
int fuse_session_fd(struct fuse_session *se)
void fuse_session_unmount(struct fuse_session *se)
int fuse_reply_err(fuse_req_t req, int err)
void fuse_session_reset(struct fuse_session *se)
int fuse_reply_iov(fuse_req_t req, const struct iovec *iov, int count)
size_t fuse_add_direntry(fuse_req_t req, char *buf, size_t bufsize, const char *name, const struct stat *stbuf, off_t off)
void * fuse_req_userdata(fuse_req_t req)
int fuse_req_getgroups(fuse_req_t req, int size, gid_t list[])
int fuse_reply_entry(fuse_req_t req, const struct fuse_entry_param *e)
int fuse_reply_statfs(fuse_req_t req, const struct statvfs *stbuf)
const struct fuse_ctx * fuse_req_ctx(fuse_req_t req)
void fuse_session_destroy(struct fuse_session *se)
int fuse_reply_ioctl(fuse_req_t req, int result, const void *buf, size_t size)
int fuse_reply_data(fuse_req_t req, struct fuse_bufvec *bufv, enum fuse_buf_copy_flags flags)
int fuse_lowlevel_notify_delete(struct fuse_session *se, fuse_ino_t parent, fuse_ino_t child, const char *name, size_t namelen)
void fuse_lowlevel_help(void)
int fuse_req_interrupted(fuse_req_t req)
int fuse_reply_open(fuse_req_t req, const struct fuse_file_info *fi)
void fuse_session_exit(struct fuse_session *se)
int fuse_reply_bmap(fuse_req_t req, uint64_t idx)
size_t fuse_add_direntry_plus(fuse_req_t req, char *buf, size_t bufsize, const char *name, const struct fuse_entry_param *e, off_t off)
int fuse_reply_readlink(fuse_req_t req, const char *link)
int fuse_reply_poll(fuse_req_t req, unsigned revents)
void(* fuse_interrupt_func_t)(fuse_req_t req, void *data)