api: Add 'flags' param to virNodeDeviceCreate/Undefine()

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>
This commit is contained in:
Jonathon Jongsma 2021-04-09 10:50:03 -05:00
parent e7b7c87a57
commit e2f82a3704
8 changed files with 36 additions and 16 deletions

View 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:

View 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,

View 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;

View 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;

View 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);

View 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;
};

View 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;

View 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);