diff options
author | Zach Reizner <zachr@google.com> | 2017-05-04 14:56:51 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2017-06-01 23:49:24 -0700 |
commit | 7e33f619c4f4e6addc757867bad3d109fb0549ee (patch) | |
tree | cb53321f26dc8e1f9d5ba94693bf3ae3d3e21c47 /src/hw/virtio/mod.rs | |
parent | f61e803c486564039580c14b0789a7013946087b (diff) | |
download | crosvm-7e33f619c4f4e6addc757867bad3d109fb0549ee.tar crosvm-7e33f619c4f4e6addc757867bad3d109fb0549ee.tar.gz crosvm-7e33f619c4f4e6addc757867bad3d109fb0549ee.tar.bz2 crosvm-7e33f619c4f4e6addc757867bad3d109fb0549ee.tar.lz crosvm-7e33f619c4f4e6addc757867bad3d109fb0549ee.tar.xz crosvm-7e33f619c4f4e6addc757867bad3d109fb0549ee.tar.zst crosvm-7e33f619c4f4e6addc757867bad3d109fb0549ee.zip |
crosvm: add virtio MMIO transport module
The MMIO transport, along with PCI, is a standard transport for discovering and configuring virtio devices and their associated queues. MMIO is by far easier and simpler and so gets implemented first. BUG=None TEST=None Change-Id: Icdaa02284aedf8ec726199784da45d22c8dbab87 Reviewed-on: https://chromium-review.googlesource.com/514687 Commit-Ready: Zach Reizner <zachr@chromium.org> Tested-by: Zach Reizner <zachr@chromium.org> Reviewed-by: Dylan Reid <dgreid@chromium.org>
Diffstat (limited to 'src/hw/virtio/mod.rs')
-rw-r--r-- | src/hw/virtio/mod.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/hw/virtio/mod.rs b/src/hw/virtio/mod.rs index 51af2b3..cfb22e3 100644 --- a/src/hw/virtio/mod.rs +++ b/src/hw/virtio/mod.rs @@ -5,5 +5,21 @@ //! Implements virtio devices, queues, and transport mechanisms. mod queue; +mod mmio; pub use self::queue::*; +pub use self::mmio::*; + +const DEVICE_ACKNOWLEDGE: u32 = 0x01; +const DEVICE_DRIVER: u32 = 0x02; +const DEVICE_DRIVER_OK: u32 = 0x04; +const DEVICE_FEATURES_OK: u32 = 0x08; +const DEVICE_FAILED: u32 = 0x80; + +const TYPE_BLOCK: u32 = 2; + +const INTERRUPT_STATUS_USED_RING: u32 = 0x1; + +/// Offset from the base MMIO address of a virtio device used by the guest to notify the device of +/// queue events. +pub const NOITFY_REG_OFFSET: u32 = 0x50; |