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

Reply via email to