nix

Macro ioctl_write_int

source
macro_rules! ioctl_write_int {
    ($(#[$attr:meta])* $name:ident, $ioty:expr, $nr:expr) => { ... };
}
Expand description

Generates a wrapper function for a ioctl that writes an integer to the kernel.

The arguments to this macro are:

  • The function name
  • The ioctl identifier
  • The ioctl sequence number

The generated function has the following signature:

pub unsafe fn FUNCTION_NAME(fd: libc::c_int, data: nix::sys::ioctl::ioctl_param_type) -> Result<libc::c_int>

nix::sys::ioctl::ioctl_param_type depends on the OS:

  • BSD - libc::c_int
  • Linux - libc::c_ulong

For a more in-depth explanation of ioctls, see ::sys::ioctl.

§Example

const HCI_IOC_MAGIC: u8 = b'k';
const HCI_IOC_HCIDEVUP: u8 = 1;
ioctl_write_int!(hci_dev_up, HCI_IOC_MAGIC, HCI_IOC_HCIDEVUP);