public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH proxmox-fuse-rs] add explicit "C" ABI to all extern function declarations
@ 2025-11-13  2:13 Kefu Chai
  2025-12-15  6:52 ` Kefu Chai
  0 siblings, 1 reply; 2+ messages in thread
From: Kefu Chai @ 2025-11-13  2:13 UTC (permalink / raw)
  To: pve-devel

This fixes deprecation warnings where extern function declarations
did not explicitly specify the ABI. All extern fn types in the
FUSE Operations struct now use `extern "C" fn` instead of `extern fn`.

The C ABI is required for FUSE callbacks that interface with the
native libfuse library.

Signed-off-by: Kefu Chai <k.chai@proxmox.com>
---
 src/sys.rs | 86 +++++++++++++++++++++++++++---------------------------
 1 file changed, 43 insertions(+), 43 deletions(-)

diff --git a/src/sys.rs b/src/sys.rs
index a08eece..17a01de 100644
--- a/src/sys.rs
+++ b/src/sys.rs
@@ -113,49 +113,49 @@ default_to_none! {
         // The order in which the functions are listed matters, as the offset in the
         // struct defines what function the fuse driver uses.
         // It should therefore not be altered!
-        pub init:            Option<extern fn(userdata: MutPtr)>,
-        pub destroy:         Option<extern fn(userdata: MutPtr)>,
-        pub lookup:          Option<extern fn(req: Request, parent: u64, name: StrPtr)>,
-        pub forget:          Option<extern fn(req: Request, inode: u64, nlookup: u64)>,
-        pub getattr:         Option<extern fn(req: Request, inode: u64, file_info: *const FuseFileInfo)>,
-        pub setattr:         Option<extern fn(req: Request, inode: u64, attr: *const libc::stat, to_set: c_int, file_info: *const FuseFileInfo)>,
-        pub readlink:        Option<extern fn(req: Request, inode: u64)>,
-        pub mknod:           Option<extern fn(req: Request, parent: u64, name: StrPtr, mode: libc::mode_t, rdev: libc::dev_t)>,
-        pub mkdir:           Option<extern fn(req: Request, parent: u64, name: StrPtr, mode: libc::mode_t)>,
-        pub unlink:          Option<extern fn(req: Request, parent: u64, name: StrPtr)>,
-        pub rmdir:           Option<extern fn(req: Request, parent: u64, name: StrPtr)>,
-        pub symlink:         Option<extern fn(req: Request, link: StrPtr, parent: u64, name: StrPtr)>,
-        pub rename:          Option<extern fn(req: Request, parent: u64, name: StrPtr, newparent: u64, newname: StrPtr, flags: c_int)>,
-        pub link:            Option<extern fn(req: Request, inode: u64, newparent: u64, newname: StrPtr)>,
-        pub open:            Option<extern fn(req: Request, inode: u64, file_info: *const FuseFileInfo)>,
-        pub read:            Option<extern fn(req: Request, inode: u64, size: size_t, offset: libc::off_t, file_info: *const FuseFileInfo)>,
-        pub write:           Option<extern fn(req: Request, inode: u64, buffer: *const u8, size: size_t, offset: libc::off_t, file_info: *const FuseFileInfo)>,
-        pub flush:           Option<extern fn(req: Request, inode: u64, file_info: *const FuseFileInfo)>,
-        pub release:         Option<extern fn(req: Request, inode: u64, file_info: *const FuseFileInfo)>,
-        pub fsync:           Option<extern fn(req: Request, inode: u64, datasync: c_int, file_info: *const FuseFileInfo)>,
-        pub opendir:         Option<extern fn(req: Request, inode: u64, file_info: *const FuseFileInfo)>,
-        pub readdir:         Option<extern fn(req: Request, inode: u64, size: size_t, offset: off_t, file_info: *const FuseFileInfo)>,
-        pub releasedir:      Option<extern fn(req: Request, inode: u64, file_info: *const FuseFileInfo)>,
-        pub fsyncdir:        Option<extern fn(req: Request, inode: u64, datasync: c_int, file_info: *const FuseFileInfo)>,
-        pub statfs:          Option<extern fn(req: Request, inode: u64)>,
-        pub setxattr:        Option<extern fn(req: Request, inode: u64, name: StrPtr, value: StrPtr, size: size_t, flags: c_int)>,
-        pub getxattr:        Option<extern fn(req: Request, inode: u64, name: StrPtr, size: size_t)>,
-        pub listxattr:       Option<extern fn(req: Request, inode: u64, size: size_t)>,
-        pub removexattr:     Option<extern fn(req: Request, inode: u64, name: StrPtr)>,
-        pub access:          Option<extern fn(req: Request, inode: u64, mask: i32)>,
-        pub create:          Option<extern fn(req: Request, parent: u64, name: StrPtr, mode: libc::mode_t, file_info: *const FuseFileInfo)>,
-        pub getlk:           Option<extern fn(req: Request, inode: u64, file_info: *const FuseFileInfo, lock: MutPtr)>,
-        pub setlk:           Option<extern fn(req: Request, inode: u64, file_info: *const FuseFileInfo, lock: MutPtr, sleep: c_int)>,
-        pub bmap:            Option<extern fn(req: Request, inode: u64, blocksize: size_t, idx: u64)>,
-        pub ioctl:           Option<extern fn(req: Request, inode: u64, cmd: c_int, arg: MutPtr, file_info: *const FuseFileInfo, flags: c_int, in_buf: ConstPtr, in_bufsz: size_t, out_bufsz: size_t)>,
-        pub poll:            Option<extern fn(req: Request, inode: u64, file_info: *const FuseFileInfo, pollhandle: MutPtr)>,
-        pub write_buf:       Option<extern fn(req: Request, inode: u64, bufv: MutPtr, offset: libc::off_t, file_info: *const FuseFileInfo)>,
-        pub retrieve_reply:  Option<extern fn(req: Request, cookie: ConstPtr, inode: u64, offset: libc::off_t, bufv: MutPtr)>,
-        pub forget_multi:    Option<extern fn(req: Request, count: size_t, forgets: MutPtr)>,
-        pub flock:           Option<extern fn(req: Request, inode: u64, file_info: *const FuseFileInfo, op: c_int)>,
-        pub fallocate:       Option<extern fn(req: Request, inode: u64, mode: c_int, offset: libc::off_t, length: libc::off_t, file_info: *const FuseFileInfo)>,
-        pub readdirplus:     Option<extern fn(req: Request, inode: u64, size: size_t, offset: off_t, file_info: *const FuseFileInfo)>,
-        pub copy_file_range: Option<extern fn(req: Request, ino_in: u64, off_in: libc::off_t, fi_in: *const FuseFileInfo, ino_out: u64, off_out: libc::off_t, fi_out: *const FuseFileInfo, len: size_t, flags: c_int)>,
+        pub init:            Option<extern "C" fn(userdata: MutPtr)>,
+        pub destroy:         Option<extern "C" fn(userdata: MutPtr)>,
+        pub lookup:          Option<extern "C" fn(req: Request, parent: u64, name: StrPtr)>,
+        pub forget:          Option<extern "C" fn(req: Request, inode: u64, nlookup: u64)>,
+        pub getattr:         Option<extern "C" fn(req: Request, inode: u64, file_info: *const FuseFileInfo)>,
+        pub setattr:         Option<extern "C" fn(req: Request, inode: u64, attr: *const libc::stat, to_set: c_int, file_info: *const FuseFileInfo)>,
+        pub readlink:        Option<extern "C" fn(req: Request, inode: u64)>,
+        pub mknod:           Option<extern "C" fn(req: Request, parent: u64, name: StrPtr, mode: libc::mode_t, rdev: libc::dev_t)>,
+        pub mkdir:           Option<extern "C" fn(req: Request, parent: u64, name: StrPtr, mode: libc::mode_t)>,
+        pub unlink:          Option<extern "C" fn(req: Request, parent: u64, name: StrPtr)>,
+        pub rmdir:           Option<extern "C" fn(req: Request, parent: u64, name: StrPtr)>,
+        pub symlink:         Option<extern "C" fn(req: Request, link: StrPtr, parent: u64, name: StrPtr)>,
+        pub rename:          Option<extern "C" fn(req: Request, parent: u64, name: StrPtr, newparent: u64, newname: StrPtr, flags: c_int)>,
+        pub link:            Option<extern "C" fn(req: Request, inode: u64, newparent: u64, newname: StrPtr)>,
+        pub open:            Option<extern "C" fn(req: Request, inode: u64, file_info: *const FuseFileInfo)>,
+        pub read:            Option<extern "C" fn(req: Request, inode: u64, size: size_t, offset: libc::off_t, file_info: *const FuseFileInfo)>,
+        pub write:           Option<extern "C" fn(req: Request, inode: u64, buffer: *const u8, size: size_t, offset: libc::off_t, file_info: *const FuseFileInfo)>,
+        pub flush:           Option<extern "C" fn(req: Request, inode: u64, file_info: *const FuseFileInfo)>,
+        pub release:         Option<extern "C" fn(req: Request, inode: u64, file_info: *const FuseFileInfo)>,
+        pub fsync:           Option<extern "C" fn(req: Request, inode: u64, datasync: c_int, file_info: *const FuseFileInfo)>,
+        pub opendir:         Option<extern "C" fn(req: Request, inode: u64, file_info: *const FuseFileInfo)>,
+        pub readdir:         Option<extern "C" fn(req: Request, inode: u64, size: size_t, offset: off_t, file_info: *const FuseFileInfo)>,
+        pub releasedir:      Option<extern "C" fn(req: Request, inode: u64, file_info: *const FuseFileInfo)>,
+        pub fsyncdir:        Option<extern "C" fn(req: Request, inode: u64, datasync: c_int, file_info: *const FuseFileInfo)>,
+        pub statfs:          Option<extern "C" fn(req: Request, inode: u64)>,
+        pub setxattr:        Option<extern "C" fn(req: Request, inode: u64, name: StrPtr, value: StrPtr, size: size_t, flags: c_int)>,
+        pub getxattr:        Option<extern "C" fn(req: Request, inode: u64, name: StrPtr, size: size_t)>,
+        pub listxattr:       Option<extern "C" fn(req: Request, inode: u64, size: size_t)>,
+        pub removexattr:     Option<extern "C" fn(req: Request, inode: u64, name: StrPtr)>,
+        pub access:          Option<extern "C" fn(req: Request, inode: u64, mask: i32)>,
+        pub create:          Option<extern "C" fn(req: Request, parent: u64, name: StrPtr, mode: libc::mode_t, file_info: *const FuseFileInfo)>,
+        pub getlk:           Option<extern "C" fn(req: Request, inode: u64, file_info: *const FuseFileInfo, lock: MutPtr)>,
+        pub setlk:           Option<extern "C" fn(req: Request, inode: u64, file_info: *const FuseFileInfo, lock: MutPtr, sleep: c_int)>,
+        pub bmap:            Option<extern "C" fn(req: Request, inode: u64, blocksize: size_t, idx: u64)>,
+        pub ioctl:           Option<extern "C" fn(req: Request, inode: u64, cmd: c_int, arg: MutPtr, file_info: *const FuseFileInfo, flags: c_int, in_buf: ConstPtr, in_bufsz: size_t, out_bufsz: size_t)>,
+        pub poll:            Option<extern "C" fn(req: Request, inode: u64, file_info: *const FuseFileInfo, pollhandle: MutPtr)>,
+        pub write_buf:       Option<extern "C" fn(req: Request, inode: u64, bufv: MutPtr, offset: libc::off_t, file_info: *const FuseFileInfo)>,
+        pub retrieve_reply:  Option<extern "C" fn(req: Request, cookie: ConstPtr, inode: u64, offset: libc::off_t, bufv: MutPtr)>,
+        pub forget_multi:    Option<extern "C" fn(req: Request, count: size_t, forgets: MutPtr)>,
+        pub flock:           Option<extern "C" fn(req: Request, inode: u64, file_info: *const FuseFileInfo, op: c_int)>,
+        pub fallocate:       Option<extern "C" fn(req: Request, inode: u64, mode: c_int, offset: libc::off_t, length: libc::off_t, file_info: *const FuseFileInfo)>,
+        pub readdirplus:     Option<extern "C" fn(req: Request, inode: u64, size: size_t, offset: off_t, file_info: *const FuseFileInfo)>,
+        pub copy_file_range: Option<extern "C" fn(req: Request, ino_in: u64, off_in: libc::off_t, fi_in: *const FuseFileInfo, ino_out: u64, off_out: libc::off_t, fi_out: *const FuseFileInfo, len: size_t, flags: c_int)>,
     }
 }
 
-- 
2.47.3



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [pve-devel] [PATCH proxmox-fuse-rs] add explicit "C" ABI to all extern function declarations
  2025-11-13  2:13 [pve-devel] [PATCH proxmox-fuse-rs] add explicit "C" ABI to all extern function declarations Kefu Chai
@ 2025-12-15  6:52 ` Kefu Chai
  0 siblings, 0 replies; 2+ messages in thread
From: Kefu Chai @ 2025-12-15  6:52 UTC (permalink / raw)
  To: Kefu Chai, pve-devel, Wolfgang Bumiller

+ Wolfgang,

ping?

Hi Wolfgang,

I wanted tp follow up on the patch I submitted about a month ago. 

I haven't received any feedback yet and wanted to check if there are any
concerns with the change or if any changes are needed. I'm happy to
revise the patch or provide additional information if that would be
helpful.

Thanks for your time and for maintaining this project!

Regards,

On Thu Nov 13, 2025 at 10:13 AM CST, Kefu Chai wrote:
> This fixes deprecation warnings where extern function declarations
> did not explicitly specify the ABI. All extern fn types in the
> FUSE Operations struct now use `extern "C" fn` instead of `extern fn`.
>
> The C ABI is required for FUSE callbacks that interface with the
> native libfuse library.
>
> Signed-off-by: Kefu Chai <k.chai@proxmox.com>
> ---
>  src/sys.rs | 86 +++++++++++++++++++++++++++---------------------------
>  1 file changed, 43 insertions(+), 43 deletions(-)
>
> diff --git a/src/sys.rs b/src/sys.rs
> index a08eece..17a01de 100644
> --- a/src/sys.rs
> +++ b/src/sys.rs
> @@ -113,49 +113,49 @@ default_to_none! {
>          // The order in which the functions are listed matters, as the offset in the
>          // struct defines what function the fuse driver uses.
>          // It should therefore not be altered!
> -        pub init:            Option<extern fn(userdata: MutPtr)>,
> -        pub destroy:         Option<extern fn(userdata: MutPtr)>,
> -        pub lookup:          Option<extern fn(req: Request, parent: u64, name: StrPtr)>,
> -        pub forget:          Option<extern fn(req: Request, inode: u64, nlookup: u64)>,
> -        pub getattr:         Option<extern fn(req: Request, inode: u64, file_info: *const FuseFileInfo)>,
> -        pub setattr:         Option<extern fn(req: Request, inode: u64, attr: *const libc::stat, to_set: c_int, file_info: *const FuseFileInfo)>,
> -        pub readlink:        Option<extern fn(req: Request, inode: u64)>,
> -        pub mknod:           Option<extern fn(req: Request, parent: u64, name: StrPtr, mode: libc::mode_t, rdev: libc::dev_t)>,
> -        pub mkdir:           Option<extern fn(req: Request, parent: u64, name: StrPtr, mode: libc::mode_t)>,
> -        pub unlink:          Option<extern fn(req: Request, parent: u64, name: StrPtr)>,
> -        pub rmdir:           Option<extern fn(req: Request, parent: u64, name: StrPtr)>,
> -        pub symlink:         Option<extern fn(req: Request, link: StrPtr, parent: u64, name: StrPtr)>,
> -        pub rename:          Option<extern fn(req: Request, parent: u64, name: StrPtr, newparent: u64, newname: StrPtr, flags: c_int)>,
> -        pub link:            Option<extern fn(req: Request, inode: u64, newparent: u64, newname: StrPtr)>,
> -        pub open:            Option<extern fn(req: Request, inode: u64, file_info: *const FuseFileInfo)>,
> -        pub read:            Option<extern fn(req: Request, inode: u64, size: size_t, offset: libc::off_t, file_info: *const FuseFileInfo)>,
> -        pub write:           Option<extern fn(req: Request, inode: u64, buffer: *const u8, size: size_t, offset: libc::off_t, file_info: *const FuseFileInfo)>,
> -        pub flush:           Option<extern fn(req: Request, inode: u64, file_info: *const FuseFileInfo)>,
> -        pub release:         Option<extern fn(req: Request, inode: u64, file_info: *const FuseFileInfo)>,
> -        pub fsync:           Option<extern fn(req: Request, inode: u64, datasync: c_int, file_info: *const FuseFileInfo)>,
> -        pub opendir:         Option<extern fn(req: Request, inode: u64, file_info: *const FuseFileInfo)>,
> -        pub readdir:         Option<extern fn(req: Request, inode: u64, size: size_t, offset: off_t, file_info: *const FuseFileInfo)>,
> -        pub releasedir:      Option<extern fn(req: Request, inode: u64, file_info: *const FuseFileInfo)>,
> -        pub fsyncdir:        Option<extern fn(req: Request, inode: u64, datasync: c_int, file_info: *const FuseFileInfo)>,
> -        pub statfs:          Option<extern fn(req: Request, inode: u64)>,
> -        pub setxattr:        Option<extern fn(req: Request, inode: u64, name: StrPtr, value: StrPtr, size: size_t, flags: c_int)>,
> -        pub getxattr:        Option<extern fn(req: Request, inode: u64, name: StrPtr, size: size_t)>,
> -        pub listxattr:       Option<extern fn(req: Request, inode: u64, size: size_t)>,
> -        pub removexattr:     Option<extern fn(req: Request, inode: u64, name: StrPtr)>,
> -        pub access:          Option<extern fn(req: Request, inode: u64, mask: i32)>,
> -        pub create:          Option<extern fn(req: Request, parent: u64, name: StrPtr, mode: libc::mode_t, file_info: *const FuseFileInfo)>,
> -        pub getlk:           Option<extern fn(req: Request, inode: u64, file_info: *const FuseFileInfo, lock: MutPtr)>,
> -        pub setlk:           Option<extern fn(req: Request, inode: u64, file_info: *const FuseFileInfo, lock: MutPtr, sleep: c_int)>,
> -        pub bmap:            Option<extern fn(req: Request, inode: u64, blocksize: size_t, idx: u64)>,
> -        pub ioctl:           Option<extern fn(req: Request, inode: u64, cmd: c_int, arg: MutPtr, file_info: *const FuseFileInfo, flags: c_int, in_buf: ConstPtr, in_bufsz: size_t, out_bufsz: size_t)>,
> -        pub poll:            Option<extern fn(req: Request, inode: u64, file_info: *const FuseFileInfo, pollhandle: MutPtr)>,
> -        pub write_buf:       Option<extern fn(req: Request, inode: u64, bufv: MutPtr, offset: libc::off_t, file_info: *const FuseFileInfo)>,
> -        pub retrieve_reply:  Option<extern fn(req: Request, cookie: ConstPtr, inode: u64, offset: libc::off_t, bufv: MutPtr)>,
> -        pub forget_multi:    Option<extern fn(req: Request, count: size_t, forgets: MutPtr)>,
> -        pub flock:           Option<extern fn(req: Request, inode: u64, file_info: *const FuseFileInfo, op: c_int)>,
> -        pub fallocate:       Option<extern fn(req: Request, inode: u64, mode: c_int, offset: libc::off_t, length: libc::off_t, file_info: *const FuseFileInfo)>,
> -        pub readdirplus:     Option<extern fn(req: Request, inode: u64, size: size_t, offset: off_t, file_info: *const FuseFileInfo)>,
> -        pub copy_file_range: Option<extern fn(req: Request, ino_in: u64, off_in: libc::off_t, fi_in: *const FuseFileInfo, ino_out: u64, off_out: libc::off_t, fi_out: *const FuseFileInfo, len: size_t, flags: c_int)>,
> +        pub init:            Option<extern "C" fn(userdata: MutPtr)>,
> +        pub destroy:         Option<extern "C" fn(userdata: MutPtr)>,
> +        pub lookup:          Option<extern "C" fn(req: Request, parent: u64, name: StrPtr)>,
> +        pub forget:          Option<extern "C" fn(req: Request, inode: u64, nlookup: u64)>,
> +        pub getattr:         Option<extern "C" fn(req: Request, inode: u64, file_info: *const FuseFileInfo)>,
> +        pub setattr:         Option<extern "C" fn(req: Request, inode: u64, attr: *const libc::stat, to_set: c_int, file_info: *const FuseFileInfo)>,
> +        pub readlink:        Option<extern "C" fn(req: Request, inode: u64)>,
> +        pub mknod:           Option<extern "C" fn(req: Request, parent: u64, name: StrPtr, mode: libc::mode_t, rdev: libc::dev_t)>,
> +        pub mkdir:           Option<extern "C" fn(req: Request, parent: u64, name: StrPtr, mode: libc::mode_t)>,
> +        pub unlink:          Option<extern "C" fn(req: Request, parent: u64, name: StrPtr)>,
> +        pub rmdir:           Option<extern "C" fn(req: Request, parent: u64, name: StrPtr)>,
> +        pub symlink:         Option<extern "C" fn(req: Request, link: StrPtr, parent: u64, name: StrPtr)>,
> +        pub rename:          Option<extern "C" fn(req: Request, parent: u64, name: StrPtr, newparent: u64, newname: StrPtr, flags: c_int)>,
> +        pub link:            Option<extern "C" fn(req: Request, inode: u64, newparent: u64, newname: StrPtr)>,
> +        pub open:            Option<extern "C" fn(req: Request, inode: u64, file_info: *const FuseFileInfo)>,
> +        pub read:            Option<extern "C" fn(req: Request, inode: u64, size: size_t, offset: libc::off_t, file_info: *const FuseFileInfo)>,
> +        pub write:           Option<extern "C" fn(req: Request, inode: u64, buffer: *const u8, size: size_t, offset: libc::off_t, file_info: *const FuseFileInfo)>,
> +        pub flush:           Option<extern "C" fn(req: Request, inode: u64, file_info: *const FuseFileInfo)>,
> +        pub release:         Option<extern "C" fn(req: Request, inode: u64, file_info: *const FuseFileInfo)>,
> +        pub fsync:           Option<extern "C" fn(req: Request, inode: u64, datasync: c_int, file_info: *const FuseFileInfo)>,
> +        pub opendir:         Option<extern "C" fn(req: Request, inode: u64, file_info: *const FuseFileInfo)>,
> +        pub readdir:         Option<extern "C" fn(req: Request, inode: u64, size: size_t, offset: off_t, file_info: *const FuseFileInfo)>,
> +        pub releasedir:      Option<extern "C" fn(req: Request, inode: u64, file_info: *const FuseFileInfo)>,
> +        pub fsyncdir:        Option<extern "C" fn(req: Request, inode: u64, datasync: c_int, file_info: *const FuseFileInfo)>,
> +        pub statfs:          Option<extern "C" fn(req: Request, inode: u64)>,
> +        pub setxattr:        Option<extern "C" fn(req: Request, inode: u64, name: StrPtr, value: StrPtr, size: size_t, flags: c_int)>,
> +        pub getxattr:        Option<extern "C" fn(req: Request, inode: u64, name: StrPtr, size: size_t)>,
> +        pub listxattr:       Option<extern "C" fn(req: Request, inode: u64, size: size_t)>,
> +        pub removexattr:     Option<extern "C" fn(req: Request, inode: u64, name: StrPtr)>,
> +        pub access:          Option<extern "C" fn(req: Request, inode: u64, mask: i32)>,
> +        pub create:          Option<extern "C" fn(req: Request, parent: u64, name: StrPtr, mode: libc::mode_t, file_info: *const FuseFileInfo)>,
> +        pub getlk:           Option<extern "C" fn(req: Request, inode: u64, file_info: *const FuseFileInfo, lock: MutPtr)>,
> +        pub setlk:           Option<extern "C" fn(req: Request, inode: u64, file_info: *const FuseFileInfo, lock: MutPtr, sleep: c_int)>,
> +        pub bmap:            Option<extern "C" fn(req: Request, inode: u64, blocksize: size_t, idx: u64)>,
> +        pub ioctl:           Option<extern "C" fn(req: Request, inode: u64, cmd: c_int, arg: MutPtr, file_info: *const FuseFileInfo, flags: c_int, in_buf: ConstPtr, in_bufsz: size_t, out_bufsz: size_t)>,
> +        pub poll:            Option<extern "C" fn(req: Request, inode: u64, file_info: *const FuseFileInfo, pollhandle: MutPtr)>,
> +        pub write_buf:       Option<extern "C" fn(req: Request, inode: u64, bufv: MutPtr, offset: libc::off_t, file_info: *const FuseFileInfo)>,
> +        pub retrieve_reply:  Option<extern "C" fn(req: Request, cookie: ConstPtr, inode: u64, offset: libc::off_t, bufv: MutPtr)>,
> +        pub forget_multi:    Option<extern "C" fn(req: Request, count: size_t, forgets: MutPtr)>,
> +        pub flock:           Option<extern "C" fn(req: Request, inode: u64, file_info: *const FuseFileInfo, op: c_int)>,
> +        pub fallocate:       Option<extern "C" fn(req: Request, inode: u64, mode: c_int, offset: libc::off_t, length: libc::off_t, file_info: *const FuseFileInfo)>,
> +        pub readdirplus:     Option<extern "C" fn(req: Request, inode: u64, size: size_t, offset: off_t, file_info: *const FuseFileInfo)>,
> +        pub copy_file_range: Option<extern "C" fn(req: Request, ino_in: u64, off_in: libc::off_t, fi_in: *const FuseFileInfo, ino_out: u64, off_out: libc::off_t, fi_out: *const FuseFileInfo, len: size_t, flags: c_int)>,
>      }
>  }
>  



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2025-12-15  6:52 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-11-13  2:13 [pve-devel] [PATCH proxmox-fuse-rs] add explicit "C" ABI to all extern function declarations Kefu Chai
2025-12-15  6:52 ` Kefu Chai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal