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}