conf: add privateData to virDomainVsockDef

An object for storing driver-specific data in the vsock definition.

https://bugzilla.redhat.com/show_bug.cgi?id=1291851
Signed-off-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Ján Tomko 2018-05-17 16:58:24 +02:00
parent 3858da2a14
commit c20bb30e8d
2 changed files with 14 additions and 1 deletions

View File

@ -2030,7 +2030,7 @@ virDomainActualNetDefFree(virDomainActualNetDefPtr def)
virDomainVsockDefPtr
virDomainVsockDefNew(virDomainXMLOptionPtr xmlopt ATTRIBUTE_UNUSED)
virDomainVsockDefNew(virDomainXMLOptionPtr xmlopt)
{
virDomainVsockDefPtr ret = NULL;
virDomainVsockDefPtr vsock;
@ -2038,7 +2038,14 @@ virDomainVsockDefNew(virDomainXMLOptionPtr xmlopt ATTRIBUTE_UNUSED)
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;
}
@ -2046,6 +2053,10 @@ virDomainVsockDefNew(virDomainXMLOptionPtr xmlopt ATTRIBUTE_UNUSED)
void
virDomainVsockDefFree(virDomainVsockDefPtr vsock)
{
if (!vsock)
return;
virObjectUnref(vsock->privateData);
VIR_FREE(vsock);
}

View File

@ -2315,6 +2315,7 @@ struct _virDomainIOMMUDef {
};
struct _virDomainVsockDef {
virObjectPtr privateData;
};
struct _virDomainVirtioOptions {
@ -2687,6 +2688,7 @@ struct _virDomainXMLPrivateDataCallbacks {
virDomainXMLPrivateDataNewFunc diskNew;
virDomainXMLPrivateDataNewFunc vcpuNew;
virDomainXMLPrivateDataNewFunc chrSourceNew;
virDomainXMLPrivateDataNewFunc vsockNew;
virDomainXMLPrivateDataFormatFunc format;
virDomainXMLPrivateDataParseFunc parse;
/* following function shall return a pointer which will be used as the