[Libvirt-cim] [PATCH 2 of 2] Add template RASD for floppy devices
Richard Maciel
rmaciel at linux.vnet.ibm.com
Wed Dec 16 15:40:52 UTC 2009
On 12/12/2009 12:06 AM, Kaitlin Rupert wrote:
> # HG changeset patch
> # User Kaitlin Rupert<karupert at us.ibm.com>
> # Date 1260583468 28800
> # Node ID e9f73b7c78fdde79996eb6a3a54cf56219153cc0
> # Parent b7bb0916ce5f3e6b70b4ff666160e076bfd8783a
> Add template RASD for floppy devices
>
> Signed-off-by: Kaitlin Rupert<karupert at us.ibm.com>
>
> diff -r b7bb0916ce5f -r e9f73b7c78fd src/Virt_SettingsDefineCapabilities.c
> --- a/src/Virt_SettingsDefineCapabilities.c Fri Dec 11 18:04:28 2009 -0800
> +++ b/src/Virt_SettingsDefineCapabilities.c Fri Dec 11 18:04:28 2009 -0800
> @@ -811,6 +811,8 @@
> (CMPIValue *)&disk_size, CMPI_uint64);
> } else if (emu_type == 1) {
> dev = "hdc";
> + } else if (emu_type == 1) {
emu_type value should be 2
> + dev = "fda";
> }
>
> CMSetProperty(inst, "VirtualDevice",
> @@ -825,29 +827,36 @@
> return s;
> }
>
> -static CMPIStatus cdrom_template(const CMPIObjectPath *ref,
> - int template_type,
> - struct inst_list *list)
> +static CMPIStatus cdrom_or_floppy_template(const CMPIObjectPath *ref,
> + int template_type,
> + uint16_t emu_type,
> + struct inst_list *list)
> {
> char *pfx = NULL;
> const char *id;
> const char *vol_path = "/dev/null";
> uint64_t vol_size = 0;
> CMPIStatus s = {CMPI_RC_OK, NULL};
> - uint16_t emu_type = 1;
> + const char *dev_str = NULL;
> + char *id_str = NULL;
> +
> + if (emu_type == VIRT_DISK_TYPE_CDROM)
> + dev_str = "CDROM";
> + else
> + dev_str = "floppy";
>
> switch(template_type) {
> case SDC_RASD_MIN:
> - id = "Minimum CDROM";
> + id = "Minimum";
> break;
> case SDC_RASD_MAX:
> - id = "Maximum CDROM";
> + id = "Maximum";
> break;
> case SDC_RASD_INC:
> - id = "Increment CDROM";
> + id = "Increment";
> break;
> case SDC_RASD_DEF:
> - id = "Default CDROM";
> + id = "Default";
> break;
> default:
> cu_statusf(_BROKER,&s,
> @@ -856,6 +865,13 @@
> goto out;
> }
>
> + if (asprintf(&id_str, "%s %s", id, dev_str) == -1) {
> + cu_statusf(_BROKER,&s,
> + CMPI_RC_ERR_NOT_FOUND,
> + "Unable to build disk device caption");
> + goto out;
> + }
> +
> pfx = class_prefix_name(CLASSNAME(ref));
> if (STREQ(pfx, "Xen")) {
> int xen_type[2] = {DOMAIN_XENFV, DOMAIN_XENPV};
> @@ -864,7 +880,7 @@
> for (; i< 2; i++) {
> s = set_disk_props(xen_type[i],
> ref,
> - id,
> + id_str,
> vol_path,
> vol_size,
> emu_type,
> @@ -873,7 +889,7 @@
> } else if (STREQ(pfx, "KVM")) {
> s = set_disk_props(DOMAIN_KVM,
> ref,
> - id,
> + id_str,
> vol_path,
> vol_size,
> emu_type,
> @@ -887,6 +903,7 @@
>
> out:
> free(pfx);
> + free(id_str);
>
> return s;
> }
> @@ -1305,7 +1322,17 @@
> goto out;
> }
>
> - s = cdrom_template(ref, template_type, list);
> + s = cdrom_or_floppy_template(ref,
> + template_type,
> + VIRT_DISK_TYPE_CDROM,
> + list);
> + if (s.rc != CMPI_RC_OK)
> + goto out;
> +
> + s = cdrom_or_floppy_template(ref,
> + template_type,
> + VIRT_DISK_TYPE_FLOPPY,
> + list);
>
> out:
> free(pfx);
> @@ -1334,7 +1361,17 @@
> if (STREQ(pfx, "LXC"))
> goto out;
>
> - s = cdrom_template(ref, template_type, list);
> + s = cdrom_or_floppy_template(ref,
> + template_type,
> + VIRT_DISK_TYPE_CDROM,
> + list);
> + if (s.rc != CMPI_RC_OK)
> + goto out;
> +
> + s = cdrom_or_floppy_template(ref,
> + template_type,
> + VIRT_DISK_TYPE_FLOPPY,
> + list);
>
> out:
> free(pfx);
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim
--
Richard Maciel, MSc
IBM Linux Technology Center
rmaciel at linux.vnet.ibm.com
More information about the Libvirt-cim
mailing list