use bitfield_struct::bitfield;
use crate::{le16, le32, le64, virtq, RingEventFlags};
#[doc(alias = "pvirtq_desc")]
#[repr(C)]
pub struct Desc {
pub addr: le64,
pub len: le32,
pub id: le16,
pub flags: virtq::DescF,
}
#[doc(alias = "pvirtq_event_suppress")]
#[repr(C)]
pub struct EventSuppress {
pub desc: EventSuppressDesc,
pub flags: EventSuppressFlags,
}
#[bitfield(u16, repr = le16, from = le16::from_ne, into = le16::to_ne)]
pub struct EventSuppressDesc {
#[bits(15)]
pub desc_event_off: u16,
#[bits(1)]
pub desc_event_wrap: u8,
}
#[bitfield(u16, repr = le16, from = le16::from_ne, into = le16::to_ne)]
pub struct EventSuppressFlags {
#[bits(2)]
pub desc_event_flags: RingEventFlags,
#[bits(14)]
pub reserved: u16,
}