From 7e534527670d513306f2c34284f94d8f7ce22269 Mon Sep 17 00:00:00 2001 From: Pascal Bauer Date: Fri, 6 Sep 2024 13:28:11 +0200 Subject: [PATCH] refactor --- fpga/lib/platform_card.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/fpga/lib/platform_card.cpp b/fpga/lib/platform_card.cpp index cff76c18d..497618772 100644 --- a/fpga/lib/platform_card.cpp +++ b/fpga/lib/platform_card.cpp @@ -55,9 +55,12 @@ void PlatformCard::connectVFIOtoIps( driver.attach(device); } - // VFIO Setup + // VFIO Device Setup + std::vector, + std::shared_ptr>> + vfio_ip_pair; for (auto pair : device_ip_pair) { - auto device = pair.second; + auto [ip, device] = pair; // Attach group to container const int iommu_group = device.iommu_group().value(); @@ -74,6 +77,14 @@ void PlatformCard::connectVFIOtoIps( // Add as member this->vfio_devices.push_back(vfio_device); + // Add return value + vfio_ip_pair.push_back({ip, vfio_device}); + } + + // Memory Graph + for (auto pair : vfio_ip_pair) { + auto [ip, vfio_device] = pair; + // Map vfio device memory to process const void *mapping = vfio_device->regionMap(0); if (mapping == MAP_FAILED) { @@ -90,7 +101,6 @@ void PlatformCard::connectVFIOtoIps( "process to vfio", srcVertexId, targetVertexId); logger->debug("create edge from process to {}", vfio_device->getName()); - auto ip = pair.first; // Connect vfio vertex to Reg vertex connect(vfio_device->getName(), ip); }