summary refs log blame commit diff
path: root/src/hw/virtio/mod.rs
blob: e2cd4a20941cbc5a09b0a2ea975d91a15f82e0f1 (plain) (tree)
1
2
3
4
5
6
7
8
9






                                                                         
         
          
              

                       
                      
                       
                           






                                     
                        






                                                                                                  
// Copyright 2017 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

//! Implements virtio devices, queues, and transport mechanisms.

mod queue;
mod mmio;
mod block;
mod vhost_net;

pub use self::queue::*;
pub use self::mmio::*;
pub use self::block::*;
pub use self::vhost_net::*;

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_NET: u32 = 1;
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;