return 0;
}
+static virDomainXMLPrivateDataCallbacks vzDomainXMLPrivateDataCallbacksPtr = {
+ .alloc = vzDomObjAlloc,
+ .free = vzDomObjFree,
+};
static virDomainDefParserConfig vzDomainDefParserConfig = {
.macPrefix = {0x42, 0x1C, 0x00},
if (!(driver->caps = vzBuildCapabilities()) ||
!(driver->xmlopt = virDomainXMLOptionNew(&vzDomainDefParserConfig,
- NULL, NULL)) ||
+ &vzDomainXMLPrivateDataCallbacksPtr,
+ NULL)) ||
!(driver->domains = virDomainObjListNew()) ||
!(driver->domainEventState = virObjectEventStateNew()) ||
(vzInitVersion(driver) < 0) ||
return ret;
}
-void
-prlsdkDomObjFreePrivate(void *p)
-{
- vzDomObjPtr pdom = p;
-
- if (!pdom)
- return;
-
- PrlHandle_Free(pdom->sdkdom);
- PrlHandle_Free(pdom->stats);
- VIR_FREE(p);
-};
-
static int
prlsdkAddDomainVideoInfoCt(virDomainDefPtr def)
{
prlsdkGetVcpuStats(PRL_HANDLE sdkstas, int idx, unsigned long long *time);
int
prlsdkGetMemoryStats(PRL_HANDLE sdkstas, virDomainMemoryStatPtr stats, unsigned int nr_stats);
-void
-prlsdkDomObjFreePrivate(void *p);
/* memsize is in MiB */
int prlsdkSetMemsize(virDomainObjPtr dom, unsigned int memsize);
int
{
virDomainDefPtr def = NULL;
virDomainObjPtr dom = NULL;
- vzDomObjPtr pdom = NULL;
if (!(def = virDomainDefNewFull(name, uuid, -1)))
goto error;
- if (VIR_ALLOC(pdom) < 0)
- goto error;
-
- pdom->stats = PRL_INVALID_HANDLE;
def->virtType = VIR_DOMAIN_VIRT_VZ;
if (!(dom = virDomainObjListAdd(driver->domains, def,
0, NULL)))
goto error;
- dom->privateData = pdom;
- dom->privateDataFreeFunc = prlsdkDomObjFreePrivate;
dom->persistent = 1;
return dom;
error:
virDomainDefFree(def);
- VIR_FREE(pdom);
return NULL;
}
return 0;
}
+
+void*
+vzDomObjAlloc(void)
+{
+ vzDomObjPtr pdom = NULL;
+
+ if (VIR_ALLOC(pdom) < 0)
+ return NULL;
+
+ pdom->stats = PRL_INVALID_HANDLE;
+
+ return pdom;
+}
+
+void
+vzDomObjFree(void* p)
+{
+ vzDomObjPtr pdom = p;
+
+ if (!pdom)
+ return;
+
+ PrlHandle_Free(pdom->sdkdom);
+ PrlHandle_Free(pdom->stats);
+ VIR_FREE(pdom);
+};
typedef struct vzDomObj *vzDomObjPtr;
+void* vzDomObjAlloc(void);
+void vzDomObjFree(void *p);
+
virDomainObjPtr vzDomObjFromDomain(virDomainPtr domain);
virDomainObjPtr vzDomObjFromDomainRef(virDomainPtr domain);