bcachefs-tools/bch_bindgen
Thomas Bertschinger 25e84a9917 rust: use libc::Ioctl type for ioctl() request argument
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 <tahbertschinger@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2024-02-20 22:27:19 -05:00
..
src rust: use libc::Ioctl type for ioctl() request argument 2024-02-20 22:27:19 -05:00
.gitignore
build.rs bch_bindgen: fix packed and aligned structs on i686, ppc64 2024-02-17 13:38:09 -05:00
Cargo.toml rust: update bindgen to 0.69.4; remove custom type modifications 2024-02-04 18:26:33 -05:00
rustfmt.toml