[PATCH 2/3] [bhyve] add command line argument "passthru"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sponsored by: Future Crew, LLC
Signed-off-by: Alexander Shursha <kekek2@xxxxx>
---
 src/bhyve/bhyve_command.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/src/bhyve/bhyve_command.c b/src/bhyve/bhyve_command.c
index bc287307c8..16986c9d53 100644
--- a/src/bhyve/bhyve_command.c
+++ b/src/bhyve/bhyve_command.c
@@ -152,6 +152,25 @@ bhyveBuildConsoleArgStr(const virDomainDef *def, virCommand *cmd)
     return 0;
 }
 
+static int
+bhyveBuildHostdevArgStr(const virDomainDef *def, virCommand *cmd)
+{
+    size_t i;
+
+    for (i = 0; i < def->nhostdevs; i++) {
+        virDomainHostdevDef *hostdev = def->hostdevs[i];
+        virDomainHostdevSubsys *subsys = &hostdev->source.subsys;
+
+        if (hostdev->mode != VIR_DOMAIN_HOSTDEV_MODE_SUBSYS ||
+            subsys->type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI)
+            continue;
+        virCommandAddArg(cmd, "-s");
+        virCommandAddArgFormat(cmd, "%d,passthru,%d/%d/%d",
+                               hostdev->info->addr.pci.slot, subsys->u.pci.addr.bus, subsys->u.pci.addr.slot, subsys->u.pci.addr.function);
+    }
+    return 0;
+}
+
 static int
 bhyveBuildAHCIControllerArgStr(const virDomainDef *def,
                                virDomainControllerDef *controller,
@@ -819,6 +838,9 @@ virBhyveProcessBuildBhyveCmd(struct _bhyveConn *driver, virDomainDef *def,
             virCommandAddArg(cmd, bhyvecmd->args[i]);
     }
 
+    if (bhyveBuildHostdevArgStr(def, cmd) < 0)
+        return NULL;
+
     virCommandAddArg(cmd, def->name);
 
     return g_steal_pointer(&cmd);
-- 
2.47.1



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux