
On 4/27/20 2:14 PM, Daniel Henrique Barboza wrote:
This patch adds the implementation of the CFPC pSeries feature, using the QEMU_CAPS_MACHINE_PSERIES_CAP_CFPC capability added in the previous patch.
CPFC can have the values "broken", "workaround" or "fixed". Extra code is required to handle it since it's not a regular tristate capability.
This is the XML format for the cap:
<features> <cfpc value='workaround'/> </features>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com> --- docs/formatdomain.html.in | 11 +++++ docs/schemas/domaincommon.rng | 15 +++++++ src/conf/domain_conf.c | 44 +++++++++++++++++++ src/conf/domain_conf.h | 12 +++++ src/libvirt_private.syms | 1 + src/qemu/qemu_command.c | 5 +++ src/qemu/qemu_validate.c | 11 +++++ tests/qemuxml2argvdata/pseries-features.args | 3 +- tests/qemuxml2argvdata/pseries-features.xml | 1 + tests/qemuxml2argvtest.c | 17 ++++++- tests/qemuxml2xmloutdata/pseries-features.xml | 1 + tests/qemuxml2xmltest.c | 3 +- 12 files changed, 121 insertions(+), 3 deletions(-)
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index ecb80ef8f2..8594049e52 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1816,6 +1816,7 @@ typedef enum { VIR_DOMAIN_FEATURE_MSRS, VIR_DOMAIN_FEATURE_CCF_ASSIST, VIR_DOMAIN_FEATURE_XEN, + VIR_DOMAIN_FEATURE_CFPC,
VIR_DOMAIN_FEATURE_LAST } virDomainFeature; @@ -1987,6 +1988,17 @@ typedef enum {
VIR_ENUM_DECL(virDomainHPTResizing);
+typedef enum { + VIR_DOMAIN_CFPC_NONE = 0, + VIR_DOMAIN_CFPC_BROKEN, + VIR_DOMAIN_CFPC_WORKAROUND, + VIR_DOMAIN_CFPC_FIXED, + + VIR_DOMAIN_CFPC_LAST +} virDomainCFPC; + +VIR_ENUM_DECL(virDomainCFPC); +
This declares both: virDomainCFPCTypeToString() virDomainCFPCTypeFromString()
/* Operating system configuration data & machine / arch */ struct _virDomainOSEnv { char *name; diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index a9694f34c0..308959b493 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -235,6 +235,7 @@ virDomainBlockIoTuneInfoHasMaxLength; virDomainBootTypeFromString; virDomainBootTypeToString; virDomainCapabilitiesPolicyTypeToString; +virDomainCFPCTypeToString;
And even though we need only this, I'd like to expose TypeFromString() too for a possible future use. I mean, it's declared in the header file.
virDomainChrConsoleTargetTypeFromString; virDomainChrConsoleTargetTypeToString; virDomainChrDefForeach;
Michal