All these commits need a bit a information w/r/t how the task is being accomplished. It doesn't need to be a lot of words, but at least something. On 08/09/2016 08:39 AM, Jason Miesionczek wrote: > --- > src/hyperv/hyperv_driver.c | 32 ++++++++++++++++++++++++++++++++ > 1 file changed, 32 insertions(+) > > diff --git a/src/hyperv/hyperv_driver.c b/src/hyperv/hyperv_driver.c > index 7d956d3..861d5ab 100644 > --- a/src/hyperv/hyperv_driver.c > +++ b/src/hyperv/hyperv_driver.c > @@ -1573,6 +1573,37 @@ hypervDomainGetVcpus(virDomainPtr domain, virVcpuInfoPtr info, int maxinfo, > return count; > } > > +static unsigned long long > +hypervNodeGetFreeMemory(virConnectPtr conn) > +{ > + unsigned long long res = 0; > + hypervPrivate *priv = conn->privateData; > + virBuffer query = VIR_BUFFER_INITIALIZER; > + Win32_OperatingSystem *operatingSystem = NULL; > + > + /* Get Win32_OperatingSystem */ > + virBufferAddLit(&query, WIN32_OPERATINGSYSTEM_WQL_SELECT); Aha! this is what I was referring to in a previous patch - see how the string constant is 'hidden' behind some #define. That's what you really should be doing for all these patches. See MSVM_COMPUTERSYSTEM_CLASSNAME and MSVM_COMPUTERSYSTEM_WQL_SELECT for an example as well as hypervConnectOpen which makes 3 virBufferAddLit calls in order to formulate a string to make the call to hypervGetMsvmComputerSystemList > + > + if (hypervGetWin32OperatingSystemList(priv, &query, &operatingSystem) < 0) { > + goto cleanup; > + } Brackets/syntax-check > + > + if (operatingSystem == NULL) { > + virReportError(VIR_ERR_INTERNAL_ERROR, Need "%s", /syntax-check > + _("Could not get Win32_OperatingSystem")); > + goto cleanup; > + } > + > + /* Return free memory in bytes */ > + res = operatingSystem->data->FreePhysicalMemory * 1024; > + > + cleanup: > + hypervFreeObject(priv, (hypervObject *) operatingSystem); > + virBufferFreeAndReset(&query); > + > + return res; > +} > + > static virHypervisorDriver hypervHypervisorDriver = { > .name = "Hyper-V", > .connectOpen = hypervConnectOpen, /* 0.9.5 */ > @@ -1580,6 +1611,7 @@ static virHypervisorDriver hypervHypervisorDriver = { > .connectGetType = hypervConnectGetType, /* 0.9.5 */ > .connectGetHostname = hypervConnectGetHostname, /* 0.9.5 */ > .nodeGetInfo = hypervNodeGetInfo, /* 0.9.5 */ > + .nodeGetFreeMemory = hypervNodeGetFreeMemory, /* 1.2.10 */ 2.3.0 at the earliest John > .connectListDomains = hypervConnectListDomains, /* 0.9.5 */ > .connectNumOfDomains = hypervConnectNumOfDomains, /* 0.9.5 */ > .connectListAllDomains = hypervConnectListAllDomains, /* 0.10.2 */ > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list