On Tue, Feb 20, 2024 at 08:24:20PM -0700, Thomas Bertschinger wrote: > The second argument to ioctl() can be defined as a different type by > different libc implementations, and can be a different size on different > architectures depending on what type it is defined as. For example, > glibc defines it as `unsigned long` which may have a different size on > 32-bit vs. 64-bit architectures, and musl libc defines it as `int`. > > The Rust libc crate exposes a type `libc::Ioctl` which is defined as the > appropriate integer type for the given libc implementation. Using this > type for the request argument to `libc::ioctl()` ensures code will > compile correctly regardless of architecture and libc implementation. > > Also, because ioctl request numbers are defined to be 32 bits > (regardless of the fact that `unsigned long` might sometimes take 64 > bits on some architectures), this patch changes the Rust representation > of the bcachefs ioctl numbers to u32 instead of u64. > > Signed-off-by: Thomas Bertschinger <[email protected]>
this is applied
