]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
api: Add 'flags' param to virNodeDeviceCreate/Undefine()
authorJonathon Jongsma <jjongsma@redhat.com>
Fri, 9 Apr 2021 15:50:03 +0000 (10:50 -0500)
committerJonathon Jongsma <jjongsma@redhat.com>
Fri, 9 Apr 2021 17:43:47 +0000 (12:43 -0500)
Follow best practices and add a unsigned int flags parameter to these
new APIs that have not been in a release yet.

Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
include/libvirt/libvirt-nodedev.h
src/driver-nodedev.h
src/libvirt-nodedev.c
src/node_device/node_device_driver.c
src/node_device/node_device_driver.h
src/remote/remote_protocol.x
src/remote_protocol-structs
tools/virsh-nodedev.c

index cf51c3d085884aa526ded7abb1d107c8199865e0..067d914d370e9c21b5a1368ecdd87a5ec891ed87 100644 (file)
@@ -135,9 +135,11 @@ virNodeDevicePtr virNodeDeviceDefineXML(virConnectPtr conn,
                                         const char *xmlDesc,
                                         unsigned int flags);
 
-int virNodeDeviceUndefine(virNodeDevicePtr dev);
+int virNodeDeviceUndefine(virNodeDevicePtr dev,
+                          unsigned int flags);
 
-int virNodeDeviceCreate(virNodeDevicePtr dev);
+int virNodeDeviceCreate(virNodeDevicePtr dev,
+                        unsigned int flags);
 
 /**
  * VIR_NODE_DEVICE_EVENT_CALLBACK:
index d2c7f7fe17b98b0d38d079bd7eb2be3cf8b1bf60..75464943a5232f2b10ebd825f47a45a524e1bed7 100644 (file)
@@ -80,10 +80,12 @@ typedef virNodeDevicePtr
                              unsigned int flags);
 
 typedef int
-(*virDrvNodeDeviceUndefine)(virNodeDevicePtr dev);
+(*virDrvNodeDeviceUndefine)(virNodeDevicePtr dev,
+                            unsigned int flags);
 
 typedef int
-(*virDrvNodeDeviceCreate)(virNodeDevicePtr dev);
+(*virDrvNodeDeviceCreate)(virNodeDevicePtr dev,
+                          unsigned int flags);
 
 typedef int
 (*virDrvConnectNodeDeviceEventRegisterAny)(virConnectPtr conn,
index 477232f630a74bfded94ad4ca3672478147fbbd5..e416c125346466b86076b29e891af8f528ed3434 100644 (file)
@@ -782,6 +782,7 @@ virNodeDeviceDefineXML(virConnectPtr conn,
 /**
  * virNodeDeviceUndefine:
  * @dev: a device object
+ * @flags: extra flags; not used yet, so callers should always pass 0
  *
  * Undefine the device object. The virtual device  is removed from the host
  * operating system.  This function may require privileged access.
@@ -789,9 +790,10 @@ virNodeDeviceDefineXML(virConnectPtr conn,
  * Returns 0 in case of success and -1 in case of failure.
  */
 int
-virNodeDeviceUndefine(virNodeDevicePtr dev)
+virNodeDeviceUndefine(virNodeDevicePtr dev,
+                      unsigned int flags)
 {
-    VIR_DEBUG("dev=%p", dev);
+    VIR_DEBUG("dev=%p, flags=0x%x", dev, flags);
 
     virResetLastError();
 
@@ -800,7 +802,7 @@ virNodeDeviceUndefine(virNodeDevicePtr dev)
 
     if (dev->conn->nodeDeviceDriver &&
         dev->conn->nodeDeviceDriver->nodeDeviceUndefine) {
-        int retval = dev->conn->nodeDeviceDriver->nodeDeviceUndefine(dev);
+        int retval = dev->conn->nodeDeviceDriver->nodeDeviceUndefine(dev, flags);
         if (retval < 0)
             goto error;
 
@@ -818,15 +820,17 @@ virNodeDeviceUndefine(virNodeDevicePtr dev)
 /**
  * virNodeDeviceCreate:
  * @dev: a device object
+ * @flags: extra flags; not used yet, so callers should always pass 0
  *
  * Start a defined node device:
  *
  * Returns 0 in case of success and -1 in case of failure.
  */
 int
-virNodeDeviceCreate(virNodeDevicePtr dev)
+virNodeDeviceCreate(virNodeDevicePtr dev,
+                    unsigned int flags)
 {
-    VIR_DEBUG("dev=%p", dev);
+    VIR_DEBUG("dev=%p, flags=0x%x", dev, flags);
 
     virResetLastError();
 
@@ -835,7 +839,7 @@ virNodeDeviceCreate(virNodeDevicePtr dev)
 
     if (dev->conn->nodeDeviceDriver &&
         dev->conn->nodeDeviceDriver->nodeDeviceCreate) {
-        int retval = dev->conn->nodeDeviceDriver->nodeDeviceCreate(dev);
+        int retval = dev->conn->nodeDeviceDriver->nodeDeviceCreate(dev, flags);
         if (retval < 0)
             goto error;
 
index 951a77f902a41da951382982dc8b4e1be53f9425..c11b8d89abedc0e8277356345f45ab25b0bf2260 100644 (file)
@@ -1341,12 +1341,15 @@ nodeDeviceDefineXML(virConnect *conn,
 
 
 int
-nodeDeviceUndefine(virNodeDevice *device)
+nodeDeviceUndefine(virNodeDevice *device,
+                   unsigned int flags)
 {
     int ret = -1;
     virNodeDeviceObj *obj = NULL;
     virNodeDeviceDef *def;
 
+    virCheckFlags(0, -1);
+
     if (nodeDeviceWaitInit() < 0)
         return -1;
 
@@ -1387,12 +1390,15 @@ nodeDeviceUndefine(virNodeDevice *device)
 
 
 int
-nodeDeviceCreate(virNodeDevice *device)
+nodeDeviceCreate(virNodeDevice *device,
+                 unsigned int flags)
 {
     int ret = -1;
     virNodeDeviceObj *obj = NULL;
     virNodeDeviceDef *def = NULL;
 
+    virCheckFlags(0, -1);
+
     if (!(obj = nodeDeviceObjFindByName(device->name)))
         return -1;
 
index 4d10be2611142efa225a053a2c82ef925f334c75..8a935ffed6745cd5e838721cd2126c471ace0e00 100644 (file)
@@ -108,7 +108,8 @@ nodeDeviceDefineXML(virConnect *conn,
                     unsigned int flags);
 
 int
-nodeDeviceUndefine(virNodeDevice *dev);
+nodeDeviceUndefine(virNodeDevice *dev,
+                   unsigned int flags);
 
 int
 nodeConnectNodeDeviceEventRegisterAny(virConnectPtr conn,
@@ -165,4 +166,5 @@ nodeDeviceGetMdevctlCreateCommand(const char *uuid,
                                   char **errmsg);
 
 int
-nodeDeviceCreate(virNodeDevice *dev);
+nodeDeviceCreate(virNodeDevice *dev,
+                 unsigned int flags);
index ecfc708fb70ce1a96e146951ccf078cc9ddea65a..de69704b68e828049223002499e7ca0fbd98e0cf 100644 (file)
@@ -2156,10 +2156,12 @@ struct remote_node_device_define_xml_ret {
 
 struct remote_node_device_undefine_args {
     remote_nonnull_string name;
+    unsigned int flags;
 };
 
 struct remote_node_device_create_args {
     remote_nonnull_string name;
+    unsigned int flags;
 };
 
 
index 15bd7ae8f0a90b120dfbf58f9ca1acc97e633ea8..6b46328adc28b9199269bb6476050d33a1709421 100644 (file)
@@ -1609,9 +1609,11 @@ struct remote_node_device_define_xml_ret {
 };
 struct remote_node_device_undefine_args {
         remote_nonnull_string      name;
+        u_int                      flags;
 };
 struct remote_node_device_create_args {
         remote_nonnull_string      name;
+        u_int                      flags;
 };
 struct remote_connect_domain_event_register_ret {
         int                        cb_registered;
index e13c15b4b07a1d3d41d779130d18e9a2cbdc1dfc..8b59b1f4524ffc842d05d941cadbd32abf6de407 100644 (file)
@@ -1045,7 +1045,7 @@ cmdNodeDeviceUndefine(vshControl *ctl, const vshCmd *cmd G_GNUC_UNUSED)
     if (!dev)
         goto cleanup;
 
-    if (virNodeDeviceUndefine(dev) == 0) {
+    if (virNodeDeviceUndefine(dev, 0) == 0) {
         vshPrintExtra(ctl, _("Undefined node device '%s'\n"), device_value);
     } else {
         vshError(ctl, _("Failed to undefine node device '%s'"), device_value);
@@ -1151,7 +1151,7 @@ cmdNodeDeviceStart(vshControl *ctl, const vshCmd *cmd)
         return false;
     }
 
-    if (virNodeDeviceCreate(device) == 0) {
+    if (virNodeDeviceCreate(device, 0) == 0) {
         vshPrintExtra(ctl, _("Device %s started\n"), name);
     } else {
         vshError(ctl, _("Failed to start device %s"), name);