1#![deny(unsafe_op_in_unsafe_fn)]
4
5use bitflags::bitflags;
6use std::io::Error;
7
8mod devices;
9mod transports;
10mod util;
11pub mod virtqueue;
12
13pub use devices::*;
14pub use transports::*;
15pub use util::bytevalued::*;
16pub use util::endian::*;
17pub use util::eventfd::*;
18use util::iova::*;
19pub use util::sock_ctrl_msg::*;
20
21pub use libc::iovec;
23
24bitflags! {
25 pub struct VirtioFeatureFlags: u64 {
26 const RING_INDIRECT_DESC = 1 << 28;
27 const RING_EVENT_IDX = 1 << 29;
28 const VERSION_1 = 1 << 32;
29 const ACCESS_PLATFORM = 1 << 33;
30 const RING_PACKED = 1 << 34;
31 const IN_ORDER = 1 << 35;
32 const ORDER_PLATFORM = 1 << 36;
33 const SR_IOV = 1 << 37;
34 const NOTIFICATION_DATA = 1 << 38;
35 const NOTIF_CONFIG_DATA = 1 << 39;
36 const RING_RESET = 1 << 40;
37 }
38}
39
40pub struct Completion<C> {
44 pub context: C,
46
47 pub ret: i32,
49}