mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 21:34:54 +03:00
conf: Expose GIC capabilities
Add information about GIC capabilities to virDomainCaps and update the formatter to include them in the XML output.
This commit is contained in:
parent
24f17f557a
commit
4e2d82f72b
@ -262,6 +262,34 @@ virDomainCapsDeviceHostdevFormat(virBufferPtr buf,
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* virDomainCapsFeatureGICFormat:
|
||||
* @buf: target buffer
|
||||
* @gic: GIC features
|
||||
*
|
||||
* Format GIC features for inclusion in the domcapabilities XML.
|
||||
*
|
||||
* The resulting XML will look like
|
||||
*
|
||||
* <gic supported='yes'>
|
||||
* <enum name='version>
|
||||
* <value>2</value>
|
||||
* <value>3</value>
|
||||
* </enum>
|
||||
* </gic>
|
||||
*/
|
||||
static void
|
||||
virDomainCapsFeatureGICFormat(virBufferPtr buf,
|
||||
virDomainCapsFeatureGICPtr const gic)
|
||||
{
|
||||
FORMAT_PROLOGUE(gic);
|
||||
|
||||
ENUM_PROCESS(gic, version, virGICVersionTypeToString);
|
||||
|
||||
FORMAT_EPILOGUE(gic);
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
virDomainCapsFormatInternal(virBufferPtr buf,
|
||||
virDomainCapsPtr const caps)
|
||||
@ -291,6 +319,14 @@ virDomainCapsFormatInternal(virBufferPtr buf,
|
||||
virBufferAdjustIndent(buf, -2);
|
||||
virBufferAddLit(buf, "</devices>\n");
|
||||
|
||||
virBufferAddLit(buf, "<features>\n");
|
||||
virBufferAdjustIndent(buf, 2);
|
||||
|
||||
virDomainCapsFeatureGICFormat(buf, &caps->gic);
|
||||
|
||||
virBufferAdjustIndent(buf, -2);
|
||||
virBufferAddLit(buf, "</features>\n");
|
||||
|
||||
virBufferAdjustIndent(buf, -2);
|
||||
virBufferAddLit(buf, "</domainCapabilities>\n");
|
||||
return 0;
|
||||
|
@ -81,6 +81,13 @@ struct _virDomainCapsDeviceHostdev {
|
||||
/* add new fields here */
|
||||
};
|
||||
|
||||
typedef struct _virDomainCapsFeatureGIC virDomainCapsFeatureGIC;
|
||||
typedef virDomainCapsFeatureGIC *virDomainCapsFeatureGICPtr;
|
||||
struct _virDomainCapsFeatureGIC {
|
||||
bool supported;
|
||||
virDomainCapsEnum version; /* Info about virGICVersion */
|
||||
};
|
||||
|
||||
struct _virDomainCaps {
|
||||
virObjectLockable parent;
|
||||
|
||||
@ -96,6 +103,9 @@ struct _virDomainCaps {
|
||||
virDomainCapsDeviceDisk disk;
|
||||
virDomainCapsDeviceHostdev hostdev;
|
||||
/* add new domain devices here */
|
||||
|
||||
virDomainCapsFeatureGIC gic;
|
||||
/* add new domain features here */
|
||||
};
|
||||
|
||||
virDomainCapsPtr virDomainCapsNew(const char *path,
|
||||
|
@ -8,4 +8,7 @@
|
||||
<disk supported='no'/>
|
||||
<hostdev supported='no'/>
|
||||
</devices>
|
||||
<features>
|
||||
<gic supported='no'/>
|
||||
</features>
|
||||
</domainCapabilities>
|
||||
|
@ -68,4 +68,7 @@
|
||||
</enum>
|
||||
</hostdev>
|
||||
</devices>
|
||||
<features>
|
||||
<gic supported='no'/>
|
||||
</features>
|
||||
</domainCapabilities>
|
||||
|
@ -56,4 +56,7 @@
|
||||
</enum>
|
||||
</hostdev>
|
||||
</devices>
|
||||
<features>
|
||||
<gic supported='no'/>
|
||||
</features>
|
||||
</domainCapabilities>
|
||||
|
Loading…
Reference in New Issue
Block a user