}
-static int qemudDomainAttachDevice(virDomainPtr dom,
- const char *xml)
+static int qemuDomainAttachDeviceFlags(virDomainPtr dom, const char *xml,
+ unsigned int flags)
{
struct qemud_driver *driver = dom->conn->privateData;
virDomainObjPtr vm;
virCgroupPtr cgroup = NULL;
int ret = -1;
+ virCheckFlags(VIR_DOMAIN_DEVICE_MODIFY_LIVE |
+ VIR_DOMAIN_DEVICE_MODIFY_CONFIG, -1);
+ if (flags & VIR_DOMAIN_DEVICE_MODIFY_CONFIG) {
+ qemuReportError(VIR_ERR_OPERATION_INVALID,
+ "%s", _("cannot modify the persistent configuration of a domain"));
+ return -1;
+ }
+
qemuDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid);
if (!vm) {
return ret;
}
-static int qemudDomainAttachDeviceFlags(virDomainPtr dom,
- const char *xml,
- unsigned int flags) {
- if (flags & VIR_DOMAIN_DEVICE_MODIFY_CONFIG) {
- qemuReportError(VIR_ERR_OPERATION_INVALID,
- "%s", _("cannot modify the persistent configuration of a domain"));
- return -1;
- }
-
- return qemudDomainAttachDevice(dom, xml);
+static int qemuDomainAttachDevice(virDomainPtr dom, const char *xml)
+{
+ return qemuDomainAttachDeviceFlags(dom, xml,
+ VIR_DOMAIN_DEVICE_MODIFY_LIVE);
}
}
-static int qemudDomainDetachDevice(virDomainPtr dom,
- const char *xml) {
+static int qemuDomainDetachDeviceFlags(virDomainPtr dom, const char *xml,
+ unsigned int flags)
+{
struct qemud_driver *driver = dom->conn->privateData;
virDomainObjPtr vm;
virBitmapPtr qemuCaps = NULL;
virDomainDeviceDefPtr dev = NULL;
int ret = -1;
+ virCheckFlags(VIR_DOMAIN_DEVICE_MODIFY_LIVE|
+ VIR_DOMAIN_DEVICE_MODIFY_CONFIG, -1);
+
+ if (flags & VIR_DOMAIN_DEVICE_MODIFY_CONFIG) {
+ qemuReportError(VIR_ERR_OPERATION_INVALID,
+ "%s", _("cannot modify the persistent configuration of a domain:"));
+ return -1;
+ }
qemuDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid);
if (!vm) {
return ret;
}
-static int qemudDomainDetachDeviceFlags(virDomainPtr dom,
- const char *xml,
- unsigned int flags) {
- if (flags & VIR_DOMAIN_DEVICE_MODIFY_CONFIG) {
- qemuReportError(VIR_ERR_OPERATION_INVALID,
- "%s", _("cannot modify the persistent configuration of a domain"));
- return -1;
- }
-
- return qemudDomainDetachDevice(dom, xml);
+static int qemuDomainDetachDevice(virDomainPtr dom, const char *xml)
+{
+ return qemuDomainDetachDeviceFlags(dom, xml,
+ VIR_DOMAIN_DEVICE_MODIFY_LIVE);
}
static int qemudDomainGetAutostart(virDomainPtr dom,
qemudDomainStartWithFlags, /* domainCreateWithFlags */
qemudDomainDefine, /* domainDefineXML */
qemudDomainUndefine, /* domainUndefine */
- qemudDomainAttachDevice, /* domainAttachDevice */
- qemudDomainAttachDeviceFlags, /* domainAttachDeviceFlags */
- qemudDomainDetachDevice, /* domainDetachDevice */
- qemudDomainDetachDeviceFlags, /* domainDetachDeviceFlags */
+ qemuDomainAttachDevice, /* domainAttachDevice */
+ qemuDomainAttachDeviceFlags, /* domainAttachDeviceFlags */
+ qemuDomainDetachDevice, /* domainDetachDevice */
+ qemuDomainDetachDeviceFlags, /* domainDetachDeviceFlags */
qemuDomainUpdateDeviceFlags, /* domainUpdateDeviceFlags */
qemudDomainGetAutostart, /* domainGetAutostart */
qemudDomainSetAutostart, /* domainSetAutostart */