# HG changeset patch
# User Kaitlin Rupert <karupert(a)us.ibm.com>
# Date 1225839014 28800
# Node ID a3eb89f3e9af9f236fcba51edce1682bc0831056
# Parent f08e0fd04dc6689eff62b64f903178e05d440521
(#2) Add support for input devices to Virt_RASD.c
Updates:
-Set ResourceSubType with input type
-Set Caption with bus type
Signed-off-by: Kaitlin Rupert <karupert(a)us.ibm.com>
diff -r f08e0fd04dc6 -r a3eb89f3e9af schema/ResourceAllocationSettingData.mof
--- a/schema/ResourceAllocationSettingData.mof Wed Nov 12 14:22:48 2008 -0800
+++ b/schema/ResourceAllocationSettingData.mof Tue Nov 04 14:50:14 2008 -0800
@@ -145,3 +145,24 @@
{
};
+[Description ("Xen virtual input device"),
+ Provider("cmpi::Virt_RASD")
+]
+class Xen_InputResourceAllocationSettingData : Xen_ResourceAllocationSettingData
+{
+};
+
+[Description ("KVM virtual input device"),
+ Provider("cmpi::Virt_RASD")
+]
+class KVM_InputResourceAllocationSettingData : KVM_ResourceAllocationSettingData
+{
+};
+
+[Description ("LXC virtual input device"),
+ Provider("cmpi::Virt_RASD")
+]
+class LXC_InputResourceAllocationSettingData : LXC_ResourceAllocationSettingData
+{
+};
+
diff -r f08e0fd04dc6 -r a3eb89f3e9af schema/ResourceAllocationSettingData.registration
--- a/schema/ResourceAllocationSettingData.registration Wed Nov 12 14:22:48 2008 -0800
+++ b/schema/ResourceAllocationSettingData.registration Tue Nov 04 14:50:14 2008 -0800
@@ -5,12 +5,15 @@
Xen_ProcResourceAllocationSettingData root/virt Virt_RASD Virt_RASD instance
Xen_MemResourceAllocationSettingData root/virt Virt_RASD Virt_RASD instance
Xen_GraphicsResourceAllocationSettingData root/virt Virt_RASD Virt_RASD instance
+Xen_InputResourceAllocationSettingData root/virt Virt_RASD Virt_RASD instance
KVM_DiskResourceAllocationSettingData root/virt Virt_RASD Virt_RASD instance
KVM_NetResourceAllocationSettingData root/virt Virt_RASD Virt_RASD instance
KVM_ProcResourceAllocationSettingData root/virt Virt_RASD Virt_RASD instance
KVM_MemResourceAllocationSettingData root/virt Virt_RASD Virt_RASD instance
KVM_GraphicsResourceAllocationSettingData root/virt Virt_RASD Virt_RASD instance
+KVM_InputResourceAllocationSettingData root/virt Virt_RASD Virt_RASD instance
LXC_MemResourceAllocationSettingData root/virt Virt_RASD Virt_RASD instance
LXC_DiskResourceAllocationSettingData root/virt Virt_RASD Virt_RASD instance
LXC_ProcResourceAllocationSettingData root/virt Virt_RASD Virt_RASD instance
LXC_GraphicsResourceAllocationSettingData root/virt Virt_RASD Virt_RASD instance
+LXC_InputResourceAllocationSettingData root/virt Virt_RASD Virt_RASD instance
diff -r f08e0fd04dc6 -r a3eb89f3e9af src/Makefile.am
--- a/src/Makefile.am Wed Nov 12 14:22:48 2008 -0800
+++ b/src/Makefile.am Tue Nov 04 14:50:14 2008 -0800
@@ -150,7 +150,9 @@
libVirt_HostedResourcePool_la_SOURCES = Virt_HostedResourcePool.c
libVirt_HostedResourcePool_la_LIBADD = -lVirt_DevicePool -lVirt_HostSystem
+libVirt_RASD_la_DEPENDENCIES = libVirt_Device.la
libVirt_RASD_la_SOURCES = Virt_RASD.c
+libVirt_RASD_la_LIBADD = -lVirt_Device
libVirt_ResourcePoolConfigurationService_la_DEPENDENCIES = libVirt_HostSystem.la
libVirt_ResourcePoolConfigurationService_la_SOURCES =
Virt_ResourcePoolConfigurationService.c
diff -r f08e0fd04dc6 -r a3eb89f3e9af src/Virt_RASD.c
--- a/src/Virt_RASD.c Wed Nov 12 14:22:48 2008 -0800
+++ b/src/Virt_RASD.c Tue Nov 04 14:50:14 2008 -0800
@@ -37,6 +37,7 @@
#include "Virt_RASD.h"
#include "svpc_types.h"
+#include "Virt_Device.h"
const static CMPIBroker *_BROKER;
@@ -285,6 +286,34 @@
return s;
}
+static CMPIStatus set_input_rasd_params(const struct virt_device *dev,
+ CMPIInstance *inst)
+{
+ CMPIStatus s = {CMPI_RC_OK, NULL};
+ char *cap;
+ int ret;
+
+ ret = get_input_dev_caption(dev->dev.input.type,
+ dev->dev.input.bus,
+ &cap);
+ if (ret != 1) {
+ free(cap);
+ cu_statusf(_BROKER, &s,
+ CMPI_RC_ERR_NOT_FOUND,
+ "Unable to build input caption");
+ return s;
+ }
+
+ CMSetProperty(inst, "ResourceSubType",
+ (CMPIValue *)dev->dev.input.type, CMPI_chars);
+
+ CMSetProperty(inst, "Caption", (CMPIValue *)cap, CMPI_chars);
+
+ free(cap);
+
+ return s;
+}
+
static CMPIInstance *rasd_from_vdev(const CMPIBroker *broker,
struct virt_device *dev,
const char *host,
@@ -313,6 +342,9 @@
} else if (dev->type == CIM_RES_TYPE_GRAPHICS) {
type = CIM_RES_TYPE_GRAPHICS;
base = "GraphicsResourceAllocationSettingData";
+ } else if (dev->type == CIM_RES_TYPE_INPUT) {
+ type = CIM_RES_TYPE_INPUT;
+ base = "InputResourceAllocationSettingData";
} else {
return NULL;
}
@@ -363,6 +395,8 @@
set_proc_rasd_params(broker, ref, dev, host, inst);
} else if (dev->type == CIM_RES_TYPE_GRAPHICS) {
s = set_graphics_rasd_params(dev, inst);
+ } else if (dev->type == CIM_RES_TYPE_INPUT) {
+ s = set_input_rasd_params(dev, inst);
}
/* FIXME: Put the HostResource in place */
@@ -486,6 +520,8 @@
*type = CIM_RES_TYPE_MEM;
else if (STREQ(base, "GraphicsResourceAllocationSettingData"))
*type = CIM_RES_TYPE_GRAPHICS;
+ else if (STREQ(base, "InputResourceAllocationSettingData"))
+ *type = CIM_RES_TYPE_INPUT;
else
goto out;
@@ -516,6 +552,9 @@
break;
case CIM_RES_TYPE_GRAPHICS:
*classname = "GraphicsResourceAllocationSettingData";
+ break;
+ case CIM_RES_TYPE_INPUT:
+ *classname = "InputResourceAllocationSettingData";
break;
default:
rc = CMPI_RC_ERR_FAILED;