mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-02 23:23:51 +00:00
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:
parent
e7b7c87a57
commit
e2f82a3704
@ -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:
|
||||
|
@ -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,
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user