Expand description
Provides constant functions to compute for ioctl(2) identifiers.
Currently, this supports Linux and macOS. The long term goal is to support ioctl identifiers for other BSD
variants.
ยงUsage Notes
[IoctlId] is an alias for the type to pass into the ioctl(2) request. This is either a u32 or u64, depending
on the target OS and architecture.
The [io()], [ior()], [iow()], and [iowr()] functions take a type parameter, similar to the _IO(),
_IOR(), _IOW(), and _IOWR() macros.
For example, the following C code:
struct my_ioctl_data {
unsigned int a;
};
#define MY_IOCTL _IOR(0x12, 0x34, struct my_ioctl_data)Would be written in Rust as:
use ioctl_id::*;
#[repr(C)]
struct MyIoctlData {
a: u32,
}
const MY_IOCTL: IoctlId = ior::<MyIoctlData>(0x12, 0x34);