1 //! Common part shared across all the devices.
2 
3 use bitflags::bitflags;
4 
5 bitflags! {
6     #[derive(Copy, Clone, Debug, Default, Eq, PartialEq)]
7     pub(crate) struct Feature: u64 {
8         // device independent
9         const NOTIFY_ON_EMPTY       = 1 << 24; // legacy
10         const ANY_LAYOUT            = 1 << 27; // legacy
11         const RING_INDIRECT_DESC    = 1 << 28;
12         const RING_EVENT_IDX        = 1 << 29;
13         const UNUSED                = 1 << 30; // legacy
14         const VERSION_1             = 1 << 32; // detect legacy
15 
16         // since virtio v1.1
17         const ACCESS_PLATFORM       = 1 << 33;
18         const RING_PACKED           = 1 << 34;
19         const IN_ORDER              = 1 << 35;
20         const ORDER_PLATFORM        = 1 << 36;
21         const SR_IOV                = 1 << 37;
22         const NOTIFICATION_DATA     = 1 << 38;
23     }
24 }
25