1use bitfield_struct::bitfield;
4
5use crate::{le16, le32, le64, virtq, RingEventFlags};
6
7#[doc(alias = "pvirtq_desc")]
9#[repr(C)]
10pub struct Desc {
11    pub addr: le64,
13
14    pub len: le32,
16
17    pub id: le16,
19
20    pub flags: virtq::DescF,
22}
23
24#[doc(alias = "pvirtq_event_suppress")]
26#[repr(C)]
27pub struct EventSuppress {
28    pub desc: EventSuppressDesc,
30    pub flags: EventSuppressFlags,
31}
32
33#[bitfield(u16, repr = le16, from = le16::from_ne, into = le16::to_ne)]
35pub struct EventSuppressDesc {
36    #[bits(15)]
38    pub desc_event_off: u16,
39
40    #[bits(1)]
42    pub desc_event_wrap: u8,
43}
44
45#[bitfield(u16, repr = le16, from = le16::from_ne, into = le16::to_ne)]
46pub struct EventSuppressFlags {
47    #[bits(2)]
49    pub desc_event_flags: RingEventFlags,
50
51    #[bits(14)]
53    pub reserved: u16,
54}