vmm_sys_util::ioctl

Function ioctl_with_val

Source
pub unsafe fn ioctl_with_val<F: AsRawFd>(
    fd: &F,
    req: c_ulong,
    arg: c_ulong,
) -> c_int
Expand description

Run an ioctl with a single value argument.

§Arguments

  • fd: an open file descriptor corresponding to the device on which to call the ioctl.
  • req: a device-dependent request code.
  • arg: a single value passed to ioctl.

§Safety

The caller should ensure to pass a valid file descriptor and have the return value checked.

§Examples

use vmm_sys_util::ioctl::ioctl_with_val;

const KVMIO: c_uint = 0xAE;
const KVM_CAP_USER_MEMORY: u32 = 3;
ioctl_io_nr!(KVM_CHECK_EXTENSION, KVMIO, 0x03);

let open_flags = O_RDWR | O_CLOEXEC;
let kvm_fd = unsafe { open("/dev/kvm\0".as_ptr() as *const c_char, open_flags) };

let ret = unsafe {
    ioctl_with_val(
        &File::from_raw_fd(kvm_fd),
        KVM_CHECK_EXTENSION(),
        KVM_CAP_USER_MEMORY as c_ulong,
    )
};
assert!(ret > 0);