summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libfusepp/fuseapp.cpp30
-rw-r--r--libfusepp/fuseapp.h5
2 files changed, 30 insertions, 5 deletions
diff --git a/libfusepp/fuseapp.cpp b/libfusepp/fuseapp.cpp
index 60606ea..e1c552e 100644
--- a/libfusepp/fuseapp.cpp
+++ b/libfusepp/fuseapp.cpp
@@ -158,6 +158,26 @@ int FuseAppBase::bmap(const char *, size_t, uint64_t *)
{
return -ENOSYS;
}
+int FuseAppBase::ioctl(const char *, int, void *, struct fuse_file_info *, unsigned int, void *)
+{
+ return -ENOSYS;
+}
+int FuseAppBase::poll(const char *, struct fuse_file_info *, struct fuse_pollhandle *, unsigned *)
+{
+ return -ENOSYS;
+}
+int FuseAppBase::write_buf(const char *, struct fuse_bufvec *, off_t, struct fuse_file_info *)
+{
+ return -ENOSYS;
+}
+int FuseAppBase::read_buf(const char *, struct fuse_bufvec **, size_t, off_t, struct fuse_file_info *)
+{
+ return -ENOSYS;
+}
+int FuseAppBase::flock(const char *, struct fuse_file_info *, int)
+{
+ return -ENOSYS;
+}
int FuseAppBase::onError(const std::exception & e) throw()
{
fprintf(stderr, "Unknown exception calling (what: %s)\n", e.what());
@@ -250,13 +270,13 @@ FuseAppBase::run(int & argc, char** & argv, FuseAppBase * fa)
0, // flag_utime_omit_ok
#endif
0, // flag_reserved
- NULL, // ioctl
- NULL // poll
+ fuseCall<const char *, int, void *, struct fuse_file_info *, unsigned int, void *>::helper<&FuseAppBase::ioctl>,
+ fuseCall<const char *, struct fuse_file_info *, struct fuse_pollhandle *, unsigned *>::helper<&FuseAppBase::poll>
#if (FUSE_MINOR_VERSION >= 9)
,
- NULL, // writebuf
- NULL, // readbuf
- NULL, // flock
+ fuseCall<const char *, struct fuse_bufvec *, off_t, struct fuse_file_info *>::helper<&FuseAppBase::write_buf>,
+ fuseCall<const char *, struct fuse_bufvec **, size_t, off_t, struct fuse_file_info *>::helper<&FuseAppBase::read_buf>,
+ fuseCall<const char *, struct fuse_file_info *, int>::helper<&FuseAppBase::flock>,
NULL // fallocate
#endif
#endif
diff --git a/libfusepp/fuseapp.h b/libfusepp/fuseapp.h
index c823721..1c94f13 100644
--- a/libfusepp/fuseapp.h
+++ b/libfusepp/fuseapp.h
@@ -45,6 +45,11 @@ class FuseAppBase {
virtual int lock(const char *, struct fuse_file_info *, int cmd, struct flock *);
virtual int utimens(const char *, const struct timespec tv[2]);
virtual int bmap(const char *, size_t blocksize, uint64_t *idx);
+ virtual int ioctl(const char *, int cmd, void *arg, struct fuse_file_info *, unsigned int flags, void * data);
+ virtual int poll(const char *, struct fuse_file_info *, struct fuse_pollhandle *, unsigned *);
+ virtual int write_buf (const char *, struct fuse_bufvec *buf, off_t off, struct fuse_file_info *);
+ virtual int read_buf (const char *, struct fuse_bufvec **bufp, size_t size, off_t off, struct fuse_file_info *);
+ virtual int flock (const char *, struct fuse_file_info *, int op);
virtual int onError(const std::exception & err) throw();
static int run(int &, char ** &, FuseAppBase *);