From abdd45f83cea86410536d9a45aa317cc0511d9d2 Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Tue, 31 Dec 2019 01:58:57 -0800 Subject: Make ioctl prototype conditional on FUSE_USE_VERSION. (#482) Define FUSE_USE_VERSION < 35 to get old ioctl prototype with int commands; define FUSE_USE_VERSION >= 35 to get new ioctl prototype with unsigned int commands. Fixes #463. --- include/fuse.h | 11 +++++++++++ include/fuse_lowlevel.h | 8 +++++++- 2 files changed, 18 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/fuse.h b/include/fuse.h index 883f6e5..4522f83 100644 --- a/include/fuse.h +++ b/include/fuse.h @@ -680,8 +680,13 @@ struct fuse_operations { * Note : the unsigned long request submitted by the application * is truncated to 32 bits. */ +#if FUSE_USE_VERSION < 35 + int (*ioctl) (const char *, int cmd, void *arg, + struct fuse_file_info *, unsigned int flags, void *data); +#else int (*ioctl) (const char *, unsigned int cmd, void *arg, struct fuse_file_info *, unsigned int flags, void *data); +#endif /** * Poll for IO readiness events @@ -1189,9 +1194,15 @@ int fuse_fs_removexattr(struct fuse_fs *fs, const char *path, const char *name); int fuse_fs_bmap(struct fuse_fs *fs, const char *path, size_t blocksize, uint64_t *idx); +#if FUSE_USE_VERSION < 35 +int fuse_fs_ioctl(struct fuse_fs *fs, const char *path, int cmd, + void *arg, struct fuse_file_info *fi, unsigned int flags, + void *data); +#else int fuse_fs_ioctl(struct fuse_fs *fs, const char *path, unsigned int cmd, void *arg, struct fuse_file_info *fi, unsigned int flags, void *data); +#endif int fuse_fs_poll(struct fuse_fs *fs, const char *path, struct fuse_file_info *fi, struct fuse_pollhandle *ph, unsigned *reventsp); diff --git a/include/fuse_lowlevel.h b/include/fuse_lowlevel.h index 18c6363..e2b4617 100644 --- a/include/fuse_lowlevel.h +++ b/include/fuse_lowlevel.h @@ -14,7 +14,7 @@ * Low level API * * IMPORTANT: you should define FUSE_USE_VERSION before including this - * header. To use the newest API define it to 31 (recommended for any + * header. To use the newest API define it to 35 (recommended for any * new application). */ @@ -1018,9 +1018,15 @@ struct fuse_lowlevel_ops { * Note : the unsigned long request submitted by the application * is truncated to 32 bits. */ +#if FUSE_USE_VERSION < 35 + void (*ioctl) (fuse_req_t req, fuse_ino_t ino, int cmd, + void *arg, struct fuse_file_info *fi, unsigned flags, + const void *in_buf, size_t in_bufsz, size_t out_bufsz); +#else void (*ioctl) (fuse_req_t req, fuse_ino_t ino, unsigned int cmd, void *arg, struct fuse_file_info *fi, unsigned flags, const void *in_buf, size_t in_bufsz, size_t out_bufsz); +#endif /** * Poll for IO readiness -- cgit v1.2.3