mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 19:32:19 +00:00
Pass domain object to private data formatter/parser
So that they can format private data (e.g., disk private data) stored elsewhere in the domain object. Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
This commit is contained in:
parent
b247d47f39
commit
3a0f39bcd8
@ -16185,7 +16185,7 @@ virDomainObjParseXML(xmlDocPtr xml,
|
||||
VIR_FREE(nodes);
|
||||
|
||||
if (xmlopt->privateData.parse &&
|
||||
((xmlopt->privateData.parse)(ctxt, obj->privateData)) < 0)
|
||||
xmlopt->privateData.parse(ctxt, obj) < 0)
|
||||
goto error;
|
||||
|
||||
return obj;
|
||||
@ -22074,7 +22074,7 @@ virDomainObjFormat(virDomainXMLOptionPtr xmlopt,
|
||||
}
|
||||
|
||||
if (xmlopt->privateData.format &&
|
||||
((xmlopt->privateData.format)(&buf, obj->privateData)) < 0)
|
||||
xmlopt->privateData.format(&buf, obj) < 0)
|
||||
goto error;
|
||||
|
||||
if (virDomainDefFormatInternal(obj->def, flags, &buf) < 0)
|
||||
|
@ -2357,8 +2357,10 @@ typedef virDomainXMLOption *virDomainXMLOptionPtr;
|
||||
typedef void *(*virDomainXMLPrivateDataAllocFunc)(void);
|
||||
typedef void (*virDomainXMLPrivateDataFreeFunc)(void *);
|
||||
typedef virObjectPtr (*virDomainXMLPrivateDataNewFunc)(void);
|
||||
typedef int (*virDomainXMLPrivateDataFormatFunc)(virBufferPtr, void *);
|
||||
typedef int (*virDomainXMLPrivateDataParseFunc)(xmlXPathContextPtr, void *);
|
||||
typedef int (*virDomainXMLPrivateDataFormatFunc)(virBufferPtr,
|
||||
virDomainObjPtr);
|
||||
typedef int (*virDomainXMLPrivateDataParseFunc)(xmlXPathContextPtr,
|
||||
virDomainObjPtr);
|
||||
|
||||
/* Called once after everything else has been parsed, for adjusting
|
||||
* overall domain defaults. */
|
||||
|
@ -223,9 +223,10 @@ libxlDomainObjPrivateFree(void *data)
|
||||
}
|
||||
|
||||
static int
|
||||
libxlDomainObjPrivateXMLParse(xmlXPathContextPtr ctxt, void *data)
|
||||
libxlDomainObjPrivateXMLParse(xmlXPathContextPtr ctxt,
|
||||
virDomainObjPtr vm)
|
||||
{
|
||||
libxlDomainObjPrivatePtr priv = data;
|
||||
libxlDomainObjPrivatePtr priv = vm->privateData;
|
||||
|
||||
priv->lockState = virXPathString("string(./lockstate)", ctxt);
|
||||
|
||||
@ -233,9 +234,10 @@ libxlDomainObjPrivateXMLParse(xmlXPathContextPtr ctxt, void *data)
|
||||
}
|
||||
|
||||
static int
|
||||
libxlDomainObjPrivateXMLFormat(virBufferPtr buf, void *data)
|
||||
libxlDomainObjPrivateXMLFormat(virBufferPtr buf,
|
||||
virDomainObjPtr vm)
|
||||
{
|
||||
libxlDomainObjPrivatePtr priv = data;
|
||||
libxlDomainObjPrivatePtr priv = vm->privateData;
|
||||
|
||||
if (priv->lockState)
|
||||
virBufferAsprintf(buf, "<lockstate>%s</lockstate>\n", priv->lockState);
|
||||
|
@ -51,9 +51,11 @@ static void virLXCDomainObjPrivateFree(void *data)
|
||||
}
|
||||
|
||||
|
||||
static int virLXCDomainObjPrivateXMLFormat(virBufferPtr buf, void *data)
|
||||
static int
|
||||
virLXCDomainObjPrivateXMLFormat(virBufferPtr buf,
|
||||
virDomainObjPtr vm)
|
||||
{
|
||||
virLXCDomainObjPrivatePtr priv = data;
|
||||
virLXCDomainObjPrivatePtr priv = vm->privateData;
|
||||
|
||||
virBufferAsprintf(buf, "<init pid='%llu'/>\n",
|
||||
(unsigned long long)priv->initpid);
|
||||
@ -61,9 +63,11 @@ static int virLXCDomainObjPrivateXMLFormat(virBufferPtr buf, void *data)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int virLXCDomainObjPrivateXMLParse(xmlXPathContextPtr ctxt, void *data)
|
||||
static int
|
||||
virLXCDomainObjPrivateXMLParse(xmlXPathContextPtr ctxt,
|
||||
virDomainObjPtr vm)
|
||||
{
|
||||
virLXCDomainObjPrivatePtr priv = data;
|
||||
virLXCDomainObjPrivatePtr priv = vm->privateData;
|
||||
unsigned long long thepid;
|
||||
|
||||
if (virXPathULongLong("string(./init[1]/@pid)", ctxt, &thepid) < 0) {
|
||||
|
@ -511,9 +511,10 @@ qemuDomainObjPrivateFree(void *data)
|
||||
|
||||
|
||||
static int
|
||||
qemuDomainObjPrivateXMLFormat(virBufferPtr buf, void *data)
|
||||
qemuDomainObjPrivateXMLFormat(virBufferPtr buf,
|
||||
virDomainObjPtr vm)
|
||||
{
|
||||
qemuDomainObjPrivatePtr priv = data;
|
||||
qemuDomainObjPrivatePtr priv = vm->privateData;
|
||||
const char *monitorpath;
|
||||
qemuDomainJob job;
|
||||
|
||||
@ -600,9 +601,10 @@ qemuDomainObjPrivateXMLFormat(virBufferPtr buf, void *data)
|
||||
}
|
||||
|
||||
static int
|
||||
qemuDomainObjPrivateXMLParse(xmlXPathContextPtr ctxt, void *data)
|
||||
qemuDomainObjPrivateXMLParse(xmlXPathContextPtr ctxt,
|
||||
virDomainObjPtr vm)
|
||||
{
|
||||
qemuDomainObjPrivatePtr priv = data;
|
||||
qemuDomainObjPrivatePtr priv = vm->privateData;
|
||||
char *monitorpath;
|
||||
char *tmp;
|
||||
int n;
|
||||
|
Loading…
x
Reference in New Issue
Block a user