From 5751a0b6b1968bb2354b2ac21cc5938b93009590 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Wed, 13 Nov 2019 16:10:45 +0100 Subject: [PATCH] domcaps: Add function for initializing domain caps as unsupported MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For future extensions of the domain caps it's useful to have a single point that initializes all capabilities as unsupported by a driver. The driver then can enable specific ones. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- src/bhyve/bhyve_capabilities.c | 4 +--- src/conf/domain_capabilities.c | 14 ++++++++++++++ src/conf/domain_capabilities.h | 2 ++ src/libvirt_private.syms | 1 + src/libxl/libxl_capabilities.c | 5 ++--- 5 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/bhyve/bhyve_capabilities.c b/src/bhyve/bhyve_capabilities.c index c04a475375..f80cf7be62 100644 --- a/src/bhyve/bhyve_capabilities.c +++ b/src/bhyve/bhyve_capabilities.c @@ -116,9 +116,7 @@ virBhyveDomainCapsFill(virDomainCapsPtr caps, } caps->hostdev.supported = VIR_TRISTATE_BOOL_NO; - caps->iothreads = VIR_TRISTATE_BOOL_NO; - caps->vmcoreinfo = VIR_TRISTATE_BOOL_NO; - caps->genid = VIR_TRISTATE_BOOL_NO; + virDomainCapsFeaturesInitUnsupported(caps); caps->gic.supported = VIR_TRISTATE_BOOL_NO; return 0; diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c index d13fdc0054..df48be4994 100644 --- a/src/conf/domain_capabilities.c +++ b/src/conf/domain_capabilities.c @@ -309,6 +309,20 @@ virDomainCapsEnumClear(virDomainCapsEnumPtr capsEnum) } +/** + * @caps: domain caps + * + * Initializes all features in 'caps' as unsupported. + */ +void +virDomainCapsFeaturesInitUnsupported(virDomainCapsPtr caps) +{ + caps->iothreads = VIR_TRISTATE_BOOL_NO; + caps->vmcoreinfo = VIR_TRISTATE_BOOL_NO; + caps->genid = VIR_TRISTATE_BOOL_NO; +} + + static int virDomainCapsEnumFormat(virBufferPtr buf, const virDomainCapsEnum *capsEnum, diff --git a/src/conf/domain_capabilities.h b/src/conf/domain_capabilities.h index 8bfc6ccccb..03192b6f40 100644 --- a/src/conf/domain_capabilities.h +++ b/src/conf/domain_capabilities.h @@ -225,6 +225,8 @@ int virDomainCapsEnumSet(virDomainCapsEnumPtr capsEnum, unsigned int *values); void virDomainCapsEnumClear(virDomainCapsEnumPtr capsEnum); +void virDomainCapsFeaturesInitUnsupported(virDomainCapsPtr caps); + char * virDomainCapsFormat(const virDomainCaps *caps); int virDomainCapsDeviceDefValidate(const virDomainCaps *caps, diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index c706553e37..95c5b60871 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -202,6 +202,7 @@ virDomainCapsCPUUsableTypeToString; virDomainCapsDeviceDefValidate; virDomainCapsEnumClear; virDomainCapsEnumSet; +virDomainCapsFeaturesInitUnsupported; virDomainCapsFormat; virDomainCapsNew; virSEVCapabilitiesFree; diff --git a/src/libxl/libxl_capabilities.c b/src/libxl/libxl_capabilities.c index fe792e9a82..55f6b490ec 100644 --- a/src/libxl/libxl_capabilities.c +++ b/src/libxl/libxl_capabilities.c @@ -764,9 +764,8 @@ libxlMakeDomainCapabilities(virDomainCapsPtr domCaps, libxlMakeDomainDeviceHostdevCaps(hostdev) < 0) return -1; - domCaps->iothreads = VIR_TRISTATE_BOOL_NO; - domCaps->vmcoreinfo = VIR_TRISTATE_BOOL_NO; - domCaps->genid = VIR_TRISTATE_BOOL_NO; + virDomainCapsFeaturesInitUnsupported(domCaps); + domCaps->gic.supported = VIR_TRISTATE_BOOL_NO; return 0; -- GitLab