From c20bb30e8ddcd65d25540dbb566f5dd5c4a8caa1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A1n=20Tomko?= Date: Thu, 17 May 2018 16:58:24 +0200 Subject: [PATCH] conf: add privateData to virDomainVsockDef MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- src/conf/domain_conf.c | 13 ++++++++++++- src/conf/domain_conf.h | 2 ++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 08d9c16ece..21a49bd5ac 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -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); } diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 187cae9428..7877bcc9b1 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -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 -- 2.39.5