Crate ioctl_id

Crate ioctl_id 

Source
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);