From a3649c210487b86a313bf84043cd1a923397c5d1 Mon Sep 17 00:00:00 2001 From: Viktor Mihajlovski Date: Wed, 11 Sep 2013 16:45:39 +0200 Subject: [PATCH 19/60] Device: CIM_LogicalDevice for consoles Extended the Virt_Device provider to return DisplayController devices for the consoles found. This mainly for the purpose of consistency with the other RASD types. Signed-off-by: Viktor Mihajlovski Reviewed-by: Boris Fiuczynski Signed-off-by: John Ferlan --- src/Virt_Device.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/Virt_Device.c b/src/Virt_Device.c index c3b515c..aa47276 100644 --- a/src/Virt_Device.c +++ b/src/Virt_Device.c @@ -251,6 +251,34 @@ static CMPIInstance *graphics_instance(const CMPIBroker *broker, return inst; } +static CMPIInstance *console_instance(const CMPIBroker *broker, + struct console_device *dev, + const virDomainPtr dom, + const char *ns) +{ + CMPIInstance *inst; + virConnectPtr conn; + const char *ctype; + + conn = virDomainGetConnect(dom); + inst = get_typed_instance(broker, + pfx_from_conn(conn), + "DisplayController", + ns, + true); + + if (inst == NULL) { + CU_DEBUG("Failed to get instance for DisplayController"); + return NULL; + } + + ctype = chardev_source_type_IDToStr(dev->source_type); + CMSetProperty(inst, "VideoProcessor", + (CMPIValue *)ctype, CMPI_chars); + + return inst; +} + int get_input_dev_caption(const char *type, const char *bus, char **cap) @@ -483,6 +511,11 @@ static bool device_instances(const CMPIBroker *broker, &dev->dev.graphics, dom, ns); + else if (dev->type == CIM_RES_TYPE_CONSOLE) + instance = console_instance(broker, + &dev->dev.console, + dom, + ns); else if (dev->type == CIM_RES_TYPE_INPUT) instance = input_instance(broker, &dev->dev.input, -- 2.1.0