diff options
author | Alyssa Ross <hi@alyssa.is> | 2020-06-14 11:25:18 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2020-06-14 11:25:18 +0000 |
commit | b7966a9d2e768533acac0f37bdeb293c256109d3 (patch) | |
tree | 357a365ecc99e4bec214d084352e316769f70041 /devices/src/irqchip/kvm/mod.rs | |
parent | 1e318da5b57c12f67bed3b528100dbe4ec287ac5 (diff) | |
parent | d42d3fec7a9535b664b89d30fd48c90feda59957 (diff) | |
download | crosvm-b7966a9d2e768533acac0f37bdeb293c256109d3.tar crosvm-b7966a9d2e768533acac0f37bdeb293c256109d3.tar.gz crosvm-b7966a9d2e768533acac0f37bdeb293c256109d3.tar.bz2 crosvm-b7966a9d2e768533acac0f37bdeb293c256109d3.tar.lz crosvm-b7966a9d2e768533acac0f37bdeb293c256109d3.tar.xz crosvm-b7966a9d2e768533acac0f37bdeb293c256109d3.tar.zst crosvm-b7966a9d2e768533acac0f37bdeb293c256109d3.zip |
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'devices/src/irqchip/kvm/mod.rs')
-rw-r--r-- | devices/src/irqchip/kvm/mod.rs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/devices/src/irqchip/kvm/mod.rs b/devices/src/irqchip/kvm/mod.rs index 56794a3..a5fd89f 100644 --- a/devices/src/irqchip/kvm/mod.rs +++ b/devices/src/irqchip/kvm/mod.rs @@ -8,21 +8,29 @@ use std::sync::Arc; use sync::Mutex; use sys_util::{EventFd, Result}; +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +mod x86_64; +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +pub use x86_64::*; + use crate::IrqChip; /// IrqChip implementation where the entire IrqChip is emulated by KVM. /// /// This implementation will use the KVM API to create and configure the in-kernel irqchip. pub struct KvmKernelIrqChip { - _vm: KvmVm, + vm: KvmVm, vcpus: Arc<Mutex<Vec<Option<KvmVcpu>>>>, } impl KvmKernelIrqChip { /// Construct a new KvmKernelIrqchip. pub fn new(vm: KvmVm, num_vcpus: usize) -> Result<KvmKernelIrqChip> { + // TODO (colindr): this constructor needs aarch64 vs x86_64 implementations because we + // want to use vm.create_device instead of create_irq_chip on aarch64 + vm.create_irq_chip()?; Ok(KvmKernelIrqChip { - _vm: vm, + vm, vcpus: Arc::new(Mutex::new((0..num_vcpus).map(|_| None).collect())), }) } |