virDomainVsockDefPtr
-virDomainVsockDefNew(virDomainXMLOptionPtr xmlopt ATTRIBUTE_UNUSED)
+virDomainVsockDefNew(virDomainXMLOptionPtr xmlopt)
{
virDomainVsockDefPtr ret = NULL;
virDomainVsockDefPtr vsock;
if (VIR_ALLOC(vsock) < 0)
return NULL;
+ if (xmlopt &&
+ xmlopt->privateData.vsockNew &&
+ !(vsock->privateData = xmlopt->privateData.vsockNew()))
+ goto cleanup;
+
VIR_STEAL_PTR(ret, vsock);
+ cleanup:
+ virDomainVsockDefFree(vsock);
return ret;
}
void
virDomainVsockDefFree(virDomainVsockDefPtr vsock)
{
+ if (!vsock)
+ return;
+
+ virObjectUnref(vsock->privateData);
VIR_FREE(vsock);
}
};
struct _virDomainVsockDef {
+ virObjectPtr privateData;
};
struct _virDomainVirtioOptions {
virDomainXMLPrivateDataNewFunc diskNew;
virDomainXMLPrivateDataNewFunc vcpuNew;
virDomainXMLPrivateDataNewFunc chrSourceNew;
+ virDomainXMLPrivateDataNewFunc vsockNew;
virDomainXMLPrivateDataFormatFunc format;
virDomainXMLPrivateDataParseFunc parse;
/* following function shall return a pointer which will be used as the