* src/esx/esx_driver.c (esxDomainSetMemory): Move guts... (esxDomainSetMemoryFlags): ...here. * src/lxc/lxc_driver.c (lxcDomainSetMemory) (lxcDomainSetMemoryFlags): Likewise. * src/test/test_driver.c (testSetMemory, testSetMemoryFlags): Likewise. * src/uml/uml_driver.c (umlDomainSetMemory) (umlDomainSetMemoryFlags): Likewise. * src/vbox/vbox_tmpl.c (vboxDomainSetMemory) (vboxDomainSetMemoryFlags): Likewise. * src/xen/xen_driver.c (xenUnifiedDomainSetMemory) (xenUnifiedDomainSetMemoryFlags): Likewise. --- > Hmm, for other API additions, I have provided dummy wrappers for the new > function anywhere the old function existed, that merely require the same > flags as the old function would use. I'll probably propose that as a > followup patch. Like so. src/esx/esx_driver.c | 17 ++++++++++++++--- src/lxc/lxc_driver.c | 15 +++++++++++++-- src/test/test_driver.c | 19 ++++++++++++++++--- src/uml/uml_driver.c | 15 +++++++++++++-- src/vbox/vbox_tmpl.c | 15 +++++++++++++-- src/xen/xen_driver.c | 15 ++++++++++++++- 6 files changed, 83 insertions(+), 13 deletions(-) diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c index 37e104e..a2d8433 100644 --- a/src/esx/esx_driver.c +++ b/src/esx/esx_driver.c @@ -2111,7 +2111,8 @@ esxDomainSetMaxMemory(virDomainPtr domain, unsigned long memory) static int -esxDomainSetMemory(virDomainPtr domain, unsigned long memory) +esxDomainSetMemoryFlags(virDomainPtr domain, unsigned long memory, + unsigned int flags) { int result = -1; esxPrivate *priv = domain->conn->privateData; @@ -2121,6 +2122,12 @@ esxDomainSetMemory(virDomainPtr domain, unsigned long memory) esxVI_TaskInfoState taskInfoState; char *taskInfoErrorMessage = NULL; + if (flags != VIR_DOMAIN_MEM_LIVE) { + ESX_ERROR(VIR_ERR_INVALID_ARG, + _("invalid flag combination: (0x%x)"), flags); + return -1; + } + if (esxVI_EnsureSession(priv->primary) < 0) { return -1; } @@ -2164,7 +2171,11 @@ esxDomainSetMemory(virDomainPtr domain, unsigned long memory) return result; } - +static int +esxDomainSetMemory(virDomainPtr domain, unsigned long memory) +{ + return esxDomainSetMemoryFlags(domain, memory, VIR_DOMAIN_MEM_LIVE); +} static int esxDomainGetInfo(virDomainPtr domain, virDomainInfoPtr info) @@ -4593,7 +4604,7 @@ static virDriver esxDriver = { esxDomainGetMaxMemory, /* domainGetMaxMemory */ esxDomainSetMaxMemory, /* domainSetMaxMemory */ esxDomainSetMemory, /* domainSetMemory */ - NULL, /* domainSetMemoryFlags */ + esxDomainSetMemoryFlags, /* domainSetMemoryFlags */ esxDomainGetInfo, /* domainGetInfo */ NULL, /* domainSave */ NULL, /* domainRestore */ diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index 4ddeffd..f65d0a2 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -651,12 +651,19 @@ cleanup: return ret; } -static int lxcDomainSetMemory(virDomainPtr dom, unsigned long newmem) { +static int lxcDomainSetMemoryFlags(virDomainPtr dom, unsigned long newmem, + unsigned int flags) { lxc_driver_t *driver = dom->conn->privateData; virDomainObjPtr vm; virCgroupPtr cgroup = NULL; int ret = -1; + if (flags != VIR_DOMAIN_MEM_LIVE) { + lxcError(VIR_ERR_INVALID_ARG, + _("invalid flag combination: (0x%x)"), flags); + return -1; + } + lxcDriverLock(driver); vm = virDomainFindByUUID(&driver->domains, dom->uuid); lxcDriverUnlock(driver); @@ -708,6 +715,10 @@ cleanup: return ret; } +static int lxcDomainSetMemory(virDomainPtr dom, unsigned long newmem) { + return lxcDomainSetMemoryFlags(dom, newmem, VIR_DOMAIN_MEM_LIVE); +} + static int lxcDomainSetMemoryParameters(virDomainPtr dom, virMemoryParameterPtr params, int nparams, @@ -2851,7 +2862,7 @@ static virDriver lxcDriver = { lxcDomainGetMaxMemory, /* domainGetMaxMemory */ lxcDomainSetMaxMemory, /* domainSetMaxMemory */ lxcDomainSetMemory, /* domainSetMemory */ - NULL, /* domainSetMemoryFlags */ + lxcDomainSetMemoryFlags, /* domainSetMemoryFlags */ lxcDomainGetInfo, /* domainGetInfo */ NULL, /* domainSave */ NULL, /* domainRestore */ diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 438f5a3..3973b08 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -2006,13 +2006,20 @@ cleanup: return ret; } -static int testSetMemory(virDomainPtr domain, - unsigned long memory) +static int testSetMemoryFlags(virDomainPtr domain, + unsigned long memory, + unsigned int flags) { testConnPtr privconn = domain->conn->privateData; virDomainObjPtr privdom; int ret = -1; + if (flags != VIR_DOMAIN_MEM_LIVE) { + testError(VIR_ERR_INVALID_ARG, + _("invalid flag combination: (0x%x)"), flags); + return -1; + } + testDriverLock(privconn); privdom = virDomainFindByName(&privconn->domains, domain->name); @@ -2037,6 +2044,12 @@ cleanup: return ret; } +static int testSetMemory(virDomainPtr domain, + unsigned long memory) +{ + return testSetMemoryFlags(domain, memory, VIR_DOMAIN_MEM_LIVE); +} + static int testDomainGetVcpusFlags(virDomainPtr domain, unsigned int flags) { @@ -5365,7 +5378,7 @@ static virDriver testDriver = { testGetMaxMemory, /* domainGetMaxMemory */ testSetMaxMemory, /* domainSetMaxMemory */ testSetMemory, /* domainSetMemory */ - NULL, /* domainSetMemoryFlags */ + testSetMemoryFlags, /* domainSetMemoryFlags */ testGetDomainInfo, /* domainGetInfo */ testDomainSave, /* domainSave */ testDomainRestore, /* domainRestore */ diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c index 671fcc5..306ef7f 100644 --- a/src/uml/uml_driver.c +++ b/src/uml/uml_driver.c @@ -1439,11 +1439,18 @@ cleanup: return ret; } -static int umlDomainSetMemory(virDomainPtr dom, unsigned long newmem) { +static int umlDomainSetMemoryFlags(virDomainPtr dom, unsigned long newmem, + unsigned int flags) { struct uml_driver *driver = dom->conn->privateData; virDomainObjPtr vm; int ret = -1; + if (flags != VIR_DOMAIN_MEM_LIVE) { + umlReportError(VIR_ERR_INVALID_ARG, + _("invalid flag combination: (0x%x)"), flags); + return -1; + } + umlDriverLock(driver); vm = virDomainFindByUUID(&driver->domains, dom->uuid); umlDriverUnlock(driver); @@ -1478,6 +1485,10 @@ cleanup: return ret; } +static int umlDomainSetMemory(virDomainPtr dom, unsigned long newmem) { + return umlDomainSetMemoryFlags(dom, newmem, VIR_DOMAIN_MEM_LIVE); +} + static int umlDomainGetInfo(virDomainPtr dom, virDomainInfoPtr info) { struct uml_driver *driver = dom->conn->privateData; @@ -2167,7 +2178,7 @@ static virDriver umlDriver = { umlDomainGetMaxMemory, /* domainGetMaxMemory */ umlDomainSetMaxMemory, /* domainSetMaxMemory */ umlDomainSetMemory, /* domainSetMemory */ - NULL, /* domainSetMemoryFlags */ + umlDomainSetMemoryFlags, /* domainSetMemoryFlags */ umlDomainGetInfo, /* domainGetInfo */ NULL, /* domainSave */ NULL, /* domainRestore */ diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c index 342ab5e..a5e6211 100644 --- a/src/vbox/vbox_tmpl.c +++ b/src/vbox/vbox_tmpl.c @@ -1749,7 +1749,8 @@ static char *vboxDomainGetOSType(virDomainPtr dom ATTRIBUTE_UNUSED) { return osType; } -static int vboxDomainSetMemory(virDomainPtr dom, unsigned long memory) { +static int vboxDomainSetMemoryFlags(virDomainPtr dom, unsigned long memory, + unsigned int flags) { VBOX_OBJECT_CHECK(dom->conn, int, -1); IMachine *machine = NULL; vboxIID iid = VBOX_IID_INITIALIZER; @@ -1757,6 +1758,12 @@ static int vboxDomainSetMemory(virDomainPtr dom, unsigned long memory) { PRBool isAccessible = PR_FALSE; nsresult rc; + if (flags != VIR_DOMAIN_MEM_LIVE) { + vboxError(VIR_ERR_INVALID_ARG, + _("invalid flag combination: (0x%x)"), flags); + return -1; + } + vboxIIDFromUUID(&iid, dom->uuid); rc = VBOX_OBJECT_GET_MACHINE(iid.value, &machine); if (NS_FAILED(rc)) { @@ -1805,6 +1812,10 @@ cleanup: return ret; } +static int vboxDomainSetMemory(virDomainPtr dom, unsigned long memory) { + return vboxDomainSetMemoryFlags(dom, memory, VIR_DOMAIN_MEM_LIVE); +} + static int vboxDomainGetInfo(virDomainPtr dom, virDomainInfoPtr info) { VBOX_OBJECT_CHECK(dom->conn, int, -1); vboxArray machines = VBOX_ARRAY_INITIALIZER; @@ -8555,7 +8566,7 @@ virDriver NAME(Driver) = { NULL, /* domainGetMaxMemory */ NULL, /* domainSetMaxMemory */ vboxDomainSetMemory, /* domainSetMemory */ - NULL, /* domainSetMemoryFlags */ + vboxDomainSetMemoryFlags, /* domainSetMemoryFlags */ vboxDomainGetInfo, /* domainGetInfo */ vboxDomainSave, /* domainSave */ NULL, /* domainRestore */ diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c index a777225..a2b6559 100644 --- a/src/xen/xen_driver.c +++ b/src/xen/xen_driver.c @@ -955,11 +955,18 @@ xenUnifiedDomainSetMaxMemory (virDomainPtr dom, unsigned long memory) } static int -xenUnifiedDomainSetMemory (virDomainPtr dom, unsigned long memory) +xenUnifiedDomainSetMemoryFlags(virDomainPtr dom, unsigned long memory, + unsigned int flags) { GET_PRIVATE(dom->conn); int i; + if (flags != VIR_DOMAIN_MEM_LIVE) { + xenUnifiedError(VIR_ERR_INVALID_ARG, + _("invalid flag combination: (0x%x)"), flags); + return -1; + } + for (i = 0; i < XEN_UNIFIED_NR_DRIVERS; ++i) if (priv->opened[i] && drivers[i]->domainSetMemory && @@ -970,6 +977,12 @@ xenUnifiedDomainSetMemory (virDomainPtr dom, unsigned long memory) } static int +xenUnifiedDomainSetMemory (virDomainPtr dom, unsigned long memory) +{ + return xenUnifiedDomainSetMemoryFlags(dom, memory, VIR_DOMAIN_MEM_LIVE); +} + +static int xenUnifiedDomainGetInfo (virDomainPtr dom, virDomainInfoPtr info) { GET_PRIVATE(dom->conn); -- 1.7.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list