aboutsummaryrefslogtreecommitdiffstats
path: root/include/fuse_lowlevel.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/fuse_lowlevel.h')
-rw-r--r--include/fuse_lowlevel.h53
1 files changed, 51 insertions, 2 deletions
diff --git a/include/fuse_lowlevel.h b/include/fuse_lowlevel.h
index 51aea39..6435937 100644
--- a/include/fuse_lowlevel.h
+++ b/include/fuse_lowlevel.h
@@ -911,13 +911,19 @@ struct fuse_lowlevel_ops {
/**
* Callback function for the retrieve request
*
+ * Introduced in version 2.9
+ *
+ * Valid replies:
+ * fuse_reply_none
+ *
+ * @param req request handle
* @param cookie user data supplied to fuse_lowlevel_notify_retrieve()
* @param ino the inode number supplied to fuse_lowlevel_notify_retrieve()
* @param offset the offset supplied to fuse_lowlevel_notify_retrieve()
* @param bufv the buffer containing the returned data
*/
- void (*retrieve_reply) (void *cookie, fuse_ino_t ino, off_t offset,
- struct fuse_bufvec *bufv);
+ void (*retrieve_reply) (fuse_req_t req, void *cookie, fuse_ino_t ino,
+ off_t offset, struct fuse_bufvec *bufv);
/**
* Forget about multiple inodes
@@ -951,6 +957,37 @@ struct fuse_lowlevel_ops {
*/
void (*flock) (fuse_req_t req, fuse_ino_t ino,
struct fuse_file_info *fi, int op);
+
+ /**
+ * Direct mmap (CUSE only for now)
+ *
+ * @param req request handle
+ * @param ino the inode number
+ * @param addr starting address (in clients address space)
+ * @param length length of the mapping
+ * @param prot desired memory protection of the mapping
+ * @param flags mmap flags
+ * @param fi file information
+ *
+ * Introduced in version 2.9
+ */
+ void (*mmap) (fuse_req_t req, fuse_ino_t ino, uint64_t addr,
+ size_t length, int prot, int flags, off_t offset,
+ struct fuse_file_info *fi);
+
+ /**
+ * Direct munmap (CUSE only for now)
+ *
+ * @param req request handle
+ * @param ino the inode number
+ * @param map_id identifies the mapping
+ * @param length length of the mapping
+ * @param fi file information
+ *
+ * Introduced in version 2.9
+ */
+ void (*munmap) (fuse_req_t req, fuse_ino_t ino, uint64_t map_id,
+ size_t length, struct fuse_file_info *fi);
};
/**
@@ -1234,6 +1271,18 @@ int fuse_reply_ioctl_iov(fuse_req_t req, int result, const struct iovec *iov,
*/
int fuse_reply_poll(fuse_req_t req, unsigned revents);
+/**
+ * Reply to an mmap request
+ *
+ * Possible requests:
+ * mmap
+ *
+ * @param req request handle
+ * @param map_id identifies the mapping
+ * @param length length of the mapping (from zero offset)
+ */
+int fuse_reply_mmap(fuse_req_t req, uint64_t map_id, size_t length);
+
/* ----------------------------------------------------------- *
* Notification *
* ----------------------------------------------------------- */