use nix::{ioctl_read, ioctl_readwrite, ioctl_write_ptr};
use super::*;
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub struct nvm_ioctl_info_tgt {
pub version: [::std::os::raw::c_uint; 3usize],
pub reserved: ::std::os::raw::c_uint,
pub tgtname: [::std::os::raw::c_char; 48usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub struct nvm_ioctl_info {
pub version: [::std::os::raw::c_uint; 3usize],
pub tgtsize: ::std::os::raw::c_ushort,
pub reserved16: ::std::os::raw::c_ushort,
pub reserved: [::std::os::raw::c_uint; 12usize],
pub tgts: [nvm_ioctl_info_tgt; 63usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub struct nvm_ioctl_device_info {
pub devname: [::std::os::raw::c_char; 32usize],
pub bmname: [::std::os::raw::c_char; 48usize],
pub bmversion: [::std::os::raw::c_uint; 3usize],
pub flags: ::std::os::raw::c_uint,
pub reserved: [::std::os::raw::c_uint; 8usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub struct nvm_ioctl_get_devices {
pub nr_devices: ::std::os::raw::c_uint,
pub reserved: [::std::os::raw::c_uint; 31usize],
pub info: [nvm_ioctl_device_info; 31usize],
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
pub struct nvm_ioctl_create_simple {
pub lun_begin: ::std::os::raw::c_uint,
pub lun_end: ::std::os::raw::c_uint,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
pub struct nvm_ioctl_create_extended {
pub lun_begin: ::std::os::raw::c_ushort,
pub lun_end: ::std::os::raw::c_ushort,
pub over_prov: ::std::os::raw::c_ushort,
pub rsv: ::std::os::raw::c_ushort,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct nvm_ioctl_create_conf {
pub type_: ::std::os::raw::c_uint,
pub nvm_ioctl_create_conf_union: nvm_ioctl_create_conf_union,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union nvm_ioctl_create_conf_union {
pub s: nvm_ioctl_create_simple,
pub e: nvm_ioctl_create_extended,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct nvm_ioctl_create {
pub dev: [::std::os::raw::c_char; 32usize],
pub tgttype: [::std::os::raw::c_char; 48usize],
pub tgtname: [::std::os::raw::c_char; 32usize],
pub flags: ::std::os::raw::c_uint,
pub conf: nvm_ioctl_create_conf,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
pub struct nvm_ioctl_remove {
pub tgtname: [::std::os::raw::c_char; 32usize],
pub flags: ::std::os::raw::c_uint,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
pub struct nvm_ioctl_dev_init {
pub dev: [::std::os::raw::c_char; 32usize],
pub mmtype: [::std::os::raw::c_char; 8usize],
pub flags: ::std::os::raw::c_uint,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
pub struct nvm_ioctl_dev_factory {
pub dev: [::std::os::raw::c_char; 32usize],
pub flags: ::std::os::raw::c_uint,
}
ioctl_readwrite!(nvm_info, b'L', NVM_INFO_CMD, nvm_ioctl_info);
ioctl_read!(
nvm_get_devices,
b'L',
NVM_GET_DEVICES_CMD,
nvm_ioctl_get_devices
);
ioctl_write_ptr!(nvm_dev_create, b'L', NVM_DEV_CREATE_CMD, nvm_ioctl_create);
ioctl_write_ptr!(nvm_dev_remove, b'L', NVM_DEV_REMOVE_CMD, nvm_ioctl_remove);
ioctl_write_ptr!(nvm_dev_init, b'L', NVM_DEV_INIT_CMD, nvm_ioctl_dev_init);
ioctl_write_ptr!(
nvm_dev_factory,
b'L',
NVM_DEV_FACTORY_CMD,
nvm_ioctl_dev_factory
);