Extend domain capabilities with information about the supported console
device types.
Signed-off-by: Roman Bogorodskiy <bogorodskiy(a)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