+
+PRLSDK_GENERATE_STRING_GETTER(PrlResult_GetParamAsString)
+
+PRLSDK_GENERATE_STRING_GETTER(PrlVmCfg_GetName)
+PRLSDK_GENERATE_STRING_GETTER(PrlVmCfg_GetVNCHostName)
+PRLSDK_GENERATE_STRING_GETTER(PrlVmCfg_GetCpuMask)
+PRLSDK_GENERATE_STRING_GETTER(PrlVmCfg_GetHomePath)
+
+PRLSDK_GENERATE_STRING_GETTER(PrlVmDev_GetFriendlyName)
+PRLSDK_GENERATE_STRING_GETTER(PrlVmDev_GetImagePath)
+
+PRLSDK_GENERATE_STRING_GETTER(PrlVmDevHd_GetMountPoint)
+
+PRLSDK_GENERATE_STRING_GETTER(PrlVmDevNet_GetHostInterfaceName)
+PRLSDK_GENERATE_STRING_GETTER(PrlVmDevNet_GetVirtualNetworkId)
int
prlsdkInit(void)
@@ -346,19 +384,8 @@ prlsdkGetDomainIds(PRL_HANDLE sdkdom,
PRL_UINT32 len;
PRL_RESULT pret;
- if (name) {
- len = 0;
- *name = NULL;
- /* get name length */
- pret = PrlVmCfg_GetName(sdkdom, NULL, &len);
- prlsdkCheckRetGoto(pret, error);
-
- if (VIR_ALLOC_N(*name, len) < 0)
- goto error;
-
- pret = PrlVmCfg_GetName(sdkdom, *name, &len);
- prlsdkCheckRetGoto(pret, error);
- }
+ if (name && !(*name = PrlVmCfg_GetName_Alloc(sdkdom)))
+ goto error;
if (uuid) {
len = sizeof(uuidstr);
@@ -465,7 +492,6 @@ prlsdkGetDiskInfo(vzConnPtr privconn,
bool isCt)
{
char *buf = NULL;
- PRL_UINT32 buflen = 0;
PRL_RESULT pret;
PRL_UINT32 emulatedType;
PRL_UINT32 ifType;
@@ -497,15 +523,9 @@ prlsdkGetDiskInfo(vzConnPtr privconn,
disk->device = VIR_DOMAIN_DISK_DEVICE_DISK;
}
- pret = PrlVmDev_GetFriendlyName(prldisk, NULL, &buflen);
- prlsdkCheckRetGoto(pret, cleanup);
-
- if (VIR_ALLOC_N(buf, buflen) < 0)
+ if (!(buf = PrlVmDev_GetFriendlyName_Alloc(prldisk)))
goto cleanup;
- pret = PrlVmDev_GetFriendlyName(prldisk, buf, &buflen);
- prlsdkCheckRetGoto(pret, cleanup);
-
if (virDomainDiskSetSource(disk, buf) < 0)
goto cleanup;
@@ -567,8 +587,6 @@ prlsdkGetFSInfo(PRL_HANDLE prldisk,
virDomainFSDefPtr fs)
{
char *buf = NULL;
- PRL_UINT32 buflen = 0;
- PRL_RESULT pret;
int ret = -1;
fs->type = VIR_DOMAIN_FS_TYPE_FILE;
@@ -580,27 +598,15 @@ prlsdkGetFSInfo(PRL_HANDLE prldisk,
fs->readonly = false;
fs->symlinksResolved = false;
- pret = PrlVmDev_GetImagePath(prldisk, NULL, &buflen);
- prlsdkCheckRetGoto(pret, cleanup);
-
- if (VIR_ALLOC_N(buf, buflen) < 0)
+ if (!(buf = PrlVmDev_GetImagePath_Alloc(prldisk)))
goto cleanup;
- pret = PrlVmDev_GetImagePath(prldisk, buf, &buflen);
- prlsdkCheckRetGoto(pret, cleanup);
-
fs->src = buf;
buf = NULL;
- pret = PrlVmDevHd_GetMountPoint(prldisk, NULL, &buflen);
- prlsdkCheckRetGoto(pret, cleanup);
-
- if (VIR_ALLOC_N(buf, buflen) < 0)
+ if (!(buf = PrlVmDevHd_GetMountPoint_Alloc(prldisk)))
goto cleanup;
- pret = PrlVmDevHd_GetMountPoint(prldisk, buf, &buflen);
- prlsdkCheckRetGoto(pret, cleanup);
-
fs->dst = buf;
buf = NULL;
@@ -726,15 +732,9 @@ prlsdkGetNetInfo(PRL_HANDLE netAdapter, virDomainNetDefPtr net, bool isCt)
/* use device name, shown by prlctl as target device
* for identifying network adapter in virDomainDefineXML */
- pret = PrlVmDevNet_GetHostInterfaceName(netAdapter, NULL, &buflen);
- prlsdkCheckRetGoto(pret, cleanup);
-
- if (VIR_ALLOC_N(net->ifname, buflen) < 0)
+ if (!(net->ifname = PrlVmDevNet_GetHostInterfaceName_Alloc(netAdapter)))
goto cleanup;
- pret = PrlVmDevNet_GetHostInterfaceName(netAdapter, net->ifname, &buflen);
- prlsdkCheckRetGoto(pret, cleanup);
-
pret = PrlVmDev_GetIndex(netAdapter, &netAdapterIndex);
prlsdkCheckRetGoto(pret, cleanup);
@@ -765,17 +765,10 @@ prlsdkGetNetInfo(PRL_HANDLE netAdapter, virDomainNetDefPtr net, bool isCt)
PARALLELS_DOMAIN_ROUTED_NETWORK_NAME) < 0)
goto cleanup;
} else {
- pret = PrlVmDevNet_GetVirtualNetworkId(netAdapter, NULL, &buflen);
- prlsdkCheckRetGoto(pret, cleanup);
-
- if (VIR_ALLOC_N(net->data.network.name, buflen) < 0)
+ if (!(net->data.network.name =
+ PrlVmDevNet_GetVirtualNetworkId_Alloc(netAdapter)))
goto cleanup;
- pret = PrlVmDevNet_GetVirtualNetworkId(netAdapter,
- net->data.network.name,
- &buflen);
- prlsdkCheckRetGoto(pret, cleanup);
-
/*
* We use VIR_DOMAIN_NET_TYPE_NETWORK for all network adapters
* except those whose Virtual Network Id differ from Parallels
@@ -868,7 +861,6 @@ prlsdkGetSerialInfo(PRL_HANDLE serialPort, virDomainChrDefPtr chr)
PRL_UINT32 serialPortIndex;
PRL_UINT32 emulatedType;
char *friendlyName = NULL;
- PRL_UINT32 buflen;
chr->deviceType = VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL;
chr->targetTypeAttr = false;
@@ -879,15 +871,9 @@ prlsdkGetSerialInfo(PRL_HANDLE serialPort, virDomainChrDefPtr chr)
pret = PrlVmDev_GetEmulatedType(serialPort, &emulatedType);
prlsdkCheckRetGoto(pret, error);
- pret = PrlVmDev_GetFriendlyName(serialPort, NULL, &buflen);
- prlsdkCheckRetGoto(pret, error);
-
- if (VIR_ALLOC_N(friendlyName, buflen) < 0)
+ if (!(friendlyName = PrlVmDev_GetFriendlyName_Alloc(serialPort)))
goto error;
- pret = PrlVmDev_GetFriendlyName(serialPort, friendlyName, &buflen);
- prlsdkCheckRetGoto(pret, error);
-
switch (emulatedType) {
case PDT_USE_OUTPUT_FILE:
chr->source.type = VIR_DOMAIN_CHR_TYPE_FILE;
@@ -987,7 +973,6 @@ prlsdkAddVNCInfo(PRL_HANDLE sdkdom, virDomainDefPtr def)
virDomainGraphicsDefPtr gr = NULL;
PRL_VM_REMOTE_DISPLAY_MODE vncMode;
PRL_UINT32 port;
- PRL_UINT32 buflen = 0;
PRL_RESULT pret;
pret = PrlVmCfg_GetVNCMode(sdkdom, &vncMode);
@@ -1016,15 +1001,9 @@ prlsdkAddVNCInfo(PRL_HANDLE sdkdom, virDomainDefPtr def)
gr->nListens = 1;
- pret = PrlVmCfg_GetVNCHostName(sdkdom, NULL, &buflen);
- prlsdkCheckRetGoto(pret, error);
-
- if (VIR_ALLOC_N(gr->listens[0].address, buflen) < 0)
+ if (!(gr->listens[0].address = PrlVmCfg_GetVNCHostName_Alloc(sdkdom)))
goto error;
- pret = PrlVmCfg_GetVNCHostName(sdkdom, gr->listens[0].address, &buflen);
- prlsdkCheckRetGoto(pret, error);
-
gr->listens[0].type = VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_ADDRESS;
if (VIR_APPEND_ELEMENT(def->graphics, def->ngraphics, gr) < 0)
@@ -1139,7 +1118,6 @@ prlsdkConvertCpuInfo(PRL_HANDLE sdkdom,
virDomainDefPtr def)
{
char *buf;
- PRL_UINT32 buflen = 0;
int hostcpus;
PRL_UINT32 cpuCount;
PRL_RESULT pret;
@@ -1161,14 +1139,9 @@ prlsdkConvertCpuInfo(PRL_HANDLE sdkdom,
if (virDomainDefSetVcpus(def, cpuCount) < 0)
goto cleanup;
- pret = PrlVmCfg_GetCpuMask(sdkdom, NULL, &buflen);
- prlsdkCheckRetGoto(pret, cleanup);
-
- if (VIR_ALLOC_N(buf, buflen) < 0)
+ if (!(buf = PrlVmCfg_GetCpuMask_Alloc(sdkdom)))
goto cleanup;
- pret = PrlVmCfg_GetCpuMask(sdkdom, buf, &buflen);
-
if (strlen(buf) == 0) {
if (!(def->cpumask = virBitmapNew(hostcpus)))
goto cleanup;
@@ -1273,7 +1246,6 @@ prlsdkLoadDomain(vzConnPtr privconn, virDomainObjPtr dom)
VIRTUAL_MACHINE_STATE domainState;
char *home = NULL;
- PRL_UINT32 buflen = 0;
PRL_RESULT pret;
PRL_UINT32 ram;
PRL_UINT32 envId;
@@ -1326,16 +1298,9 @@ prlsdkLoadDomain(vzConnPtr privconn, virDomainObjPtr dom)
pret = PrlVmCfg_GetEnvId(sdkdom, &envId);
prlsdkCheckRetGoto(pret, error);
- buflen = 0;
- pret = PrlVmCfg_GetHomePath(sdkdom, NULL, &buflen);
- prlsdkCheckRetGoto(pret, error);
-
- if (VIR_ALLOC_N(home, buflen) < 0)
+ if (!(home = PrlVmCfg_GetHomePath_Alloc(sdkdom)))
goto error;
- pret = PrlVmCfg_GetHomePath(sdkdom, home, &buflen);
- prlsdkCheckRetGoto(pret, error);
-
/* For VMs home is actually /directory/config.pvs */
if (!IS_CT(def)) {
/* Get rid of /config.pvs in path string */
@@ -3190,7 +3155,6 @@ prlsdkGetDiskIndex(PRL_HANDLE sdkdom, virDomainDiskDefPtr disk)
{
int idx = -1;
char *buf = NULL;
- PRL_UINT32 buflen = 0;
PRL_RESULT pret;
PRL_UINT32 hddCount;
PRL_UINT32 i;
@@ -3204,16 +3168,9 @@ prlsdkGetDiskIndex(PRL_HANDLE sdkdom, virDomainDiskDefPtr disk)
pret = PrlVmCfg_GetHardDisk(sdkdom, i, &hdd);
prlsdkCheckRetGoto(pret, cleanup);
- buflen = 0;
- pret = PrlVmDev_GetFriendlyName(hdd, 0, &buflen);
- prlsdkCheckRetGoto(pret, cleanup);
-
- if (VIR_ALLOC_N(buf, buflen) < 0)
+ if (!(buf = PrlVmDev_GetFriendlyName_Alloc(hdd)))
goto cleanup;
- pret = PrlVmDev_GetFriendlyName(hdd, buf, &buflen);
- prlsdkCheckRetGoto(pret, cleanup);
-
if (STRNEQ(disk->src->path, buf)) {
PrlHandle_Free(hdd);
@@ -3613,7 +3570,7 @@ prlsdkDomainHasSnapshots(PRL_HANDLE sdkdom, int* found)
PRL_HANDLE job;
PRL_HANDLE result;
char *snapshotxml = NULL;
- unsigned int len, paramsCount;
+ unsigned int paramsCount;
xmlDocPtr xml = NULL;
xmlXPathContextPtr ctxt = NULL;
@@ -3630,16 +3587,10 @@ prlsdkDomainHasSnapshots(PRL_HANDLE sdkdom, int* found)
if (!paramsCount)
goto cleanup;
- pret = PrlResult_GetParamAsString(result, 0, &len);
- prlsdkCheckRetGoto(pret, cleanup);
-
- if (VIR_ALLOC_N(snapshotxml, len+1) < 0)
+ if (!(snapshotxml = PrlResult_GetParamAsString_Alloc(result)))
goto cleanup;
- pret = PrlResult_GetParamAsString(result, snapshotxml, &len);
- prlsdkCheckRetGoto(pret, cleanup);
-
- if (len <= 1) {
+ if (*snapshotxml == '\0') {
/* The document is empty that means no snapshots */
*found = 0;
ret = 0;
@@ -3848,12 +3799,12 @@ prlsdkGetBlockStats(virDomainObjPtr dom, virDomainDiskDefPtr disk, virDomainBloc
return ret;
}
+
static PRL_HANDLE
prlsdkFindNetByPath(virDomainObjPtr dom, const char *path)
{
PRL_UINT32 count = 0;
vzDomObjPtr privdom = dom->privateData;
- PRL_UINT32 buflen = 0;
PRL_RESULT pret;
size_t i;
char *name = NULL;
@@ -3866,15 +3817,9 @@ prlsdkFindNetByPath(virDomainObjPtr dom, const char *path)
pret = PrlVmCfg_GetNetAdapter(privdom->sdkdom, i, &net);
prlsdkCheckRetGoto(pret, error);
- pret = PrlVmDevNet_GetHostInterfaceName(net, NULL, &buflen);
- prlsdkCheckRetGoto(pret, error);
-
- if (VIR_ALLOC_N(name, buflen) < 0)
+ if (!(name = PrlVmDevNet_GetHostInterfaceName_Alloc(net)))
goto error;
- pret = PrlVmDevNet_GetHostInterfaceName(net, name, &buflen);
- prlsdkCheckRetGoto(pret, error);
-
if (STREQ(name, path))
break;