/* automatically generated by rust-bindgen 0.71.1 */

pub type __u8 = ::std::os::raw::c_uchar;
pub type __u16 = ::std::os::raw::c_ushort;
pub type __u32 = ::std::os::raw::c_uint;
pub type __le16 = __u16;
pub type __le32 = __u32;
pub const virtio_input_config_select_VIRTIO_INPUT_CFG_UNSET: virtio_input_config_select = 0;
pub const virtio_input_config_select_VIRTIO_INPUT_CFG_ID_NAME: virtio_input_config_select = 1;
pub const virtio_input_config_select_VIRTIO_INPUT_CFG_ID_SERIAL: virtio_input_config_select = 2;
pub const virtio_input_config_select_VIRTIO_INPUT_CFG_ID_DEVIDS: virtio_input_config_select = 3;
pub const virtio_input_config_select_VIRTIO_INPUT_CFG_PROP_BITS: virtio_input_config_select = 16;
pub const virtio_input_config_select_VIRTIO_INPUT_CFG_EV_BITS: virtio_input_config_select = 17;
pub const virtio_input_config_select_VIRTIO_INPUT_CFG_ABS_INFO: virtio_input_config_select = 18;
pub type virtio_input_config_select = ::std::os::raw::c_uchar;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq)]
pub struct virtio_input_absinfo {
    pub min: __le32,
    pub max: __le32,
    pub fuzz: __le32,
    pub flat: __le32,
    pub res: __le32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of virtio_input_absinfo"][::std::mem::size_of::<virtio_input_absinfo>() - 20usize];
    ["Alignment of virtio_input_absinfo"][::std::mem::align_of::<virtio_input_absinfo>() - 4usize];
    ["Offset of field: virtio_input_absinfo::min"]
        [::std::mem::offset_of!(virtio_input_absinfo, min) - 0usize];
    ["Offset of field: virtio_input_absinfo::max"]
        [::std::mem::offset_of!(virtio_input_absinfo, max) - 4usize];
    ["Offset of field: virtio_input_absinfo::fuzz"]
        [::std::mem::offset_of!(virtio_input_absinfo, fuzz) - 8usize];
    ["Offset of field: virtio_input_absinfo::flat"]
        [::std::mem::offset_of!(virtio_input_absinfo, flat) - 12usize];
    ["Offset of field: virtio_input_absinfo::res"]
        [::std::mem::offset_of!(virtio_input_absinfo, res) - 16usize];
};
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq)]
pub struct virtio_input_devids {
    pub bustype: __le16,
    pub vendor: __le16,
    pub product: __le16,
    pub version: __le16,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of virtio_input_devids"][::std::mem::size_of::<virtio_input_devids>() - 8usize];
    ["Alignment of virtio_input_devids"][::std::mem::align_of::<virtio_input_devids>() - 2usize];
    ["Offset of field: virtio_input_devids::bustype"]
        [::std::mem::offset_of!(virtio_input_devids, bustype) - 0usize];
    ["Offset of field: virtio_input_devids::vendor"]
        [::std::mem::offset_of!(virtio_input_devids, vendor) - 2usize];
    ["Offset of field: virtio_input_devids::product"]
        [::std::mem::offset_of!(virtio_input_devids, product) - 4usize];
    ["Offset of field: virtio_input_devids::version"]
        [::std::mem::offset_of!(virtio_input_devids, version) - 6usize];
};
#[repr(C)]
#[derive(Copy, Clone)]
pub struct virtio_input_config {
    pub select: __u8,
    pub subsel: __u8,
    pub size: __u8,
    pub reserved: [__u8; 5usize],
    pub u: virtio_input_config__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union virtio_input_config__bindgen_ty_1 {
    pub string: [::std::os::raw::c_char; 128usize],
    pub bitmap: [__u8; 128usize],
    pub abs: virtio_input_absinfo,
    pub ids: virtio_input_devids,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of virtio_input_config__bindgen_ty_1"]
        [::std::mem::size_of::<virtio_input_config__bindgen_ty_1>() - 128usize];
    ["Alignment of virtio_input_config__bindgen_ty_1"]
        [::std::mem::align_of::<virtio_input_config__bindgen_ty_1>() - 4usize];
    ["Offset of field: virtio_input_config__bindgen_ty_1::string"]
        [::std::mem::offset_of!(virtio_input_config__bindgen_ty_1, string) - 0usize];
    ["Offset of field: virtio_input_config__bindgen_ty_1::bitmap"]
        [::std::mem::offset_of!(virtio_input_config__bindgen_ty_1, bitmap) - 0usize];
    ["Offset of field: virtio_input_config__bindgen_ty_1::abs"]
        [::std::mem::offset_of!(virtio_input_config__bindgen_ty_1, abs) - 0usize];
    ["Offset of field: virtio_input_config__bindgen_ty_1::ids"]
        [::std::mem::offset_of!(virtio_input_config__bindgen_ty_1, ids) - 0usize];
};
impl Default for virtio_input_config__bindgen_ty_1 {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of virtio_input_config"][::std::mem::size_of::<virtio_input_config>() - 136usize];
    ["Alignment of virtio_input_config"][::std::mem::align_of::<virtio_input_config>() - 4usize];
    ["Offset of field: virtio_input_config::select"]
        [::std::mem::offset_of!(virtio_input_config, select) - 0usize];
    ["Offset of field: virtio_input_config::subsel"]
        [::std::mem::offset_of!(virtio_input_config, subsel) - 1usize];
    ["Offset of field: virtio_input_config::size"]
        [::std::mem::offset_of!(virtio_input_config, size) - 2usize];
    ["Offset of field: virtio_input_config::reserved"]
        [::std::mem::offset_of!(virtio_input_config, reserved) - 3usize];
    ["Offset of field: virtio_input_config::u"]
        [::std::mem::offset_of!(virtio_input_config, u) - 8usize];
};
impl Default for virtio_input_config {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, PartialEq)]
pub struct virtio_input_event {
    pub type_: __le16,
    pub code: __le16,
    pub value: __le32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of virtio_input_event"][::std::mem::size_of::<virtio_input_event>() - 8usize];
    ["Alignment of virtio_input_event"][::std::mem::align_of::<virtio_input_event>() - 4usize];
    ["Offset of field: virtio_input_event::type_"]
        [::std::mem::offset_of!(virtio_input_event, type_) - 0usize];
    ["Offset of field: virtio_input_event::code"]
        [::std::mem::offset_of!(virtio_input_event, code) - 2usize];
    ["Offset of field: virtio_input_event::value"]
        [::std::mem::offset_of!(virtio_input_event, value) - 4usize];
};
