From fbcf01b413012c7407e5b71696ce65530790fd25 Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Thu, 18 Jan 2024 19:03:10 +0100 Subject: [PATCH] Add a couple of FIXME --- virtio-core/src/arch/x86_64.rs | 2 ++ virtio-core/src/probe.rs | 1 + virtio-core/src/spec/mod.rs | 2 ++ 3 files changed, 5 insertions(+) diff --git a/virtio-core/src/arch/x86_64.rs b/virtio-core/src/arch/x86_64.rs index f13850f4c1..e8200da934 100644 --- a/virtio-core/src/arch/x86_64.rs +++ b/virtio-core/src/arch/x86_64.rs @@ -60,6 +60,8 @@ pub fn enable_msix(pcid_handle: &mut PcidServerHandle) -> Result { }; // Allocate the primary MSI vector. + // FIXME allow the driver to register multiple MSI-X vectors + // FIXME move this MSI-X registering code into pcid_interface or pcid itself let interrupt_handle = { let table_entry_pointer = info.table_entry_pointer(MSIX_PRIMARY_VECTOR as usize); diff --git a/virtio-core/src/probe.rs b/virtio-core/src/probe.rs index 3e31284799..157ffa0f1f 100644 --- a/virtio-core/src/probe.rs +++ b/virtio-core/src/probe.rs @@ -150,6 +150,7 @@ pub fn probe_device(pcid_handle: &mut PcidServerHandle) -> Result if let (Some(common_addr), Some(device_addr), Some((notify_addr, notify_multiplier))) = (common_addr, device_addr, notify_addr) { + // FIXME this is explicitly allowed by the virtio specification to happen assert!( notify_multiplier != 0, "virtio-core::device_probe: device uses the same Queue Notify addresses for all queues" diff --git a/virtio-core/src/spec/mod.rs b/virtio-core/src/spec/mod.rs index 73efd22155..b78931d2cb 100644 --- a/virtio-core/src/spec/mod.rs +++ b/virtio-core/src/spec/mod.rs @@ -47,6 +47,8 @@ bitflags::bitflags! { mod split_virtqueue; pub use split_virtqueue::*; +// FIXME add [2.8 Packed Virtqueues](https://docs.oasis-open.org/virtio/virtio/v1.2/cs01/virtio-v1.2-cs01.html#x1-720008) + mod transport_pci; pub use transport_pci::*;