]> xenbits.xensource.com Git - libvirt.git/commitdiff
util: add stub driver name to virPCIDevice object
authorLaine Stump <laine@redhat.com>
Sun, 9 Jul 2023 02:20:39 +0000 (22:20 -0400)
committerLaine Stump <laine@redhat.com>
Fri, 25 Aug 2023 03:36:18 +0000 (23:36 -0400)
There can be many different drivers that are of the type "VFIO", so
add the driver name to the object and allow getting/setting it.

Signed-off-by: Laine Stump <laine@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/libvirt_private.syms
src/util/virpci.c
src/util/virpci.h

index 190bebdd625d0abeac78876f8614b75087a5e643..0ca63f09552a8d112750269169c1f6b48bf10eee 100644 (file)
@@ -3082,6 +3082,7 @@ virPCIDeviceGetManaged;
 virPCIDeviceGetName;
 virPCIDeviceGetRemoveSlot;
 virPCIDeviceGetReprobe;
+virPCIDeviceGetStubDriverName;
 virPCIDeviceGetStubDriverType;
 virPCIDeviceGetUnbindFromStub;
 virPCIDeviceGetUsedBy;
@@ -3108,6 +3109,7 @@ virPCIDeviceReset;
 virPCIDeviceSetManaged;
 virPCIDeviceSetRemoveSlot;
 virPCIDeviceSetReprobe;
+virPCIDeviceSetStubDriverName;
 virPCIDeviceSetStubDriverType;
 virPCIDeviceSetUnbindFromStub;
 virPCIDeviceSetUsedBy;
index d86a81c2b1dd8204bc8f2b2e276f084d56242640..a53a51d55e2f728d757df96aa7e782aaf6c82f95 100644 (file)
@@ -88,6 +88,7 @@ struct _virPCIDevice {
     bool          managed;
 
     virPCIStubDriver stubDriverType;
+    char            *stubDriverName; /* if blank, use default for type */
 
     /* used by reattach function */
     bool          unbind_from_stub;
@@ -1508,6 +1509,7 @@ virPCIDeviceCopy(virPCIDevice *dev)
     copy->path = g_strdup(dev->path);
     copy->used_by_drvname = g_strdup(dev->used_by_drvname);
     copy->used_by_domname = g_strdup(dev->used_by_domname);
+    copy->stubDriverName = g_strdup(dev->stubDriverName);
     return copy;
 }
 
@@ -1522,6 +1524,7 @@ virPCIDeviceFree(virPCIDevice *dev)
     g_free(dev->path);
     g_free(dev->used_by_drvname);
     g_free(dev->used_by_domname);
+    g_free(dev->stubDriverName);
     g_free(dev);
 }
 
@@ -1581,6 +1584,20 @@ virPCIDeviceGetStubDriverType(virPCIDevice *dev)
     return dev->stubDriverType;
 }
 
+void
+virPCIDeviceSetStubDriverName(virPCIDevice *dev,
+                                   const char *driverName)
+{
+    g_free(dev->stubDriverName);
+    dev->stubDriverName = g_strdup(driverName);
+}
+
+const char *
+virPCIDeviceGetStubDriverName(virPCIDevice *dev)
+{
+    return dev->stubDriverName;
+}
+
 bool
 virPCIDeviceGetUnbindFromStub(virPCIDevice *dev)
 {
index 485f535bc9152c6498a2964b5d062e0f874da050..f8f98f39de706ebe12c27953165d4f635955c6b7 100644 (file)
@@ -137,6 +137,9 @@ bool virPCIDeviceGetManaged(virPCIDevice *dev);
 void virPCIDeviceSetStubDriverType(virPCIDevice *dev,
                                    virPCIStubDriver driverType);
 virPCIStubDriver virPCIDeviceGetStubDriverType(virPCIDevice *dev);
+void virPCIDeviceSetStubDriverName(virPCIDevice *dev,
+                                   const char *driverName);
+const char *virPCIDeviceGetStubDriverName(virPCIDevice *dev);
 virPCIDeviceAddress *virPCIDeviceGetAddress(virPCIDevice *dev);
 int virPCIDeviceSetUsedBy(virPCIDevice *dev,
                           const char *drv_name,