Extend domain capabilities with information about the supported console device types.
Signed-off-by: Roman Bogorodskiy <bogorods...@gmail.com> --- src/libxl/libxl_capabilities.c | 23 ++++++++++++++++++++++- tests/domaincapsdata/libxl-xenfv.xml | 13 +++++++++++++ tests/domaincapsdata/libxl-xenpv.xml | 13 +++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) diff --git a/src/libxl/libxl_capabilities.c b/src/libxl/libxl_capabilities.c index 522256777d..6aca4075e7 100644 --- a/src/libxl/libxl_capabilities.c +++ b/src/libxl/libxl_capabilities.c @@ -628,6 +628,25 @@ libxlMakeDomainDeviceHostdevCaps(virDomainCapsDeviceHostdev *dev) return 0; } +static int +libxlMakeDomainDeviceConsoleCaps(virDomainCapsDeviceConsole *console) +{ + console->supported = VIR_TRISTATE_BOOL_YES; + console->type.report = true; + VIR_DOMAIN_CAPS_ENUM_SET(console->type, + VIR_DOMAIN_CHR_TYPE_DEV, + VIR_DOMAIN_CHR_TYPE_FILE, + VIR_DOMAIN_CHR_TYPE_PIPE, + VIR_DOMAIN_CHR_TYPE_PTY, + VIR_DOMAIN_CHR_TYPE_STDIO, + VIR_DOMAIN_CHR_TYPE_TCP, + VIR_DOMAIN_CHR_TYPE_UDP, + VIR_DOMAIN_CHR_TYPE_UNIX, + VIR_DOMAIN_CHR_TYPE_VC); + + return 0; +} + virCaps * libxlMakeCapabilities(libxl_ctx *ctx) { @@ -672,6 +691,7 @@ libxlMakeDomainCapabilities(virDomainCaps *domCaps, virDomainCapsDeviceGraphics *graphics = &domCaps->graphics; virDomainCapsDeviceVideo *video = &domCaps->video; virDomainCapsDeviceHostdev *hostdev = &domCaps->hostdev; + virDomainCapsDeviceConsole *console = &domCaps->console; if (STREQ(domCaps->machine, "xenfv")) domCaps->maxvcpus = HVM_MAX_VCPUS; @@ -681,7 +701,8 @@ libxlMakeDomainCapabilities(virDomainCaps *domCaps, if (libxlMakeDomainOSCaps(domCaps->machine, os, firmwares, nfirmwares) < 0 || libxlMakeDomainDeviceDiskCaps(disk) < 0 || libxlMakeDomainDeviceGraphicsCaps(graphics) < 0 || - libxlMakeDomainDeviceVideoCaps(video) < 0) + libxlMakeDomainDeviceVideoCaps(video) < 0 || + libxlMakeDomainDeviceConsoleCaps(console)) return -1; if (STRNEQ(domCaps->machine, "xenpvh") && libxlMakeDomainDeviceHostdevCaps(hostdev) < 0) diff --git a/tests/domaincapsdata/libxl-xenfv.xml b/tests/domaincapsdata/libxl-xenfv.xml index c71d759517..45887c5fa3 100644 --- a/tests/domaincapsdata/libxl-xenfv.xml +++ b/tests/domaincapsdata/libxl-xenfv.xml @@ -70,6 +70,19 @@ <value>xen</value> </enum> </hostdev> + <console supported='yes'> + <enum name='type'> + <value>vc</value> + <value>pty</value> + <value>dev</value> + <value>file</value> + <value>pipe</value> + <value>stdio</value> + <value>udp</value> + <value>tcp</value> + <value>unix</value> + </enum> + </console> </devices> <features> <gic supported='no'/> diff --git a/tests/domaincapsdata/libxl-xenpv.xml b/tests/domaincapsdata/libxl-xenpv.xml index 8ae2370b7e..50be0c5cec 100644 --- a/tests/domaincapsdata/libxl-xenpv.xml +++ b/tests/domaincapsdata/libxl-xenpv.xml @@ -60,6 +60,19 @@ <value>xen</value> </enum> </hostdev> + <console supported='yes'> + <enum name='type'> + <value>vc</value> + <value>pty</value> + <value>dev</value> + <value>file</value> + <value>pipe</value> + <value>stdio</value> + <value>udp</value> + <value>tcp</value> + <value>unix</value> + </enum> + </console> </devices> <features> <gic supported='no'/> -- 2.49.0