<div class="gmail_quote">On Fri, Dec 4, 2009 at 8:24 PM, Daniel Veillard <span dir="ltr"><<a href="mailto:veillard@redhat.com">veillard@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div><div></div><div class="h5">On Fri, Dec 04, 2009 at 03:31:06PM +0100, Matthias Bolte wrote:<br>
> ---<br>
>  src/vbox/vbox_tmpl.c |   48 +++++++++---------------------------------------<br>
>  1 files changed, 9 insertions(+), 39 deletions(-)<br>
><br>
> diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c<br>
> index 10cc1ed..33f5334 100644<br>
> --- a/src/vbox/vbox_tmpl.c<br>
> +++ b/src/vbox/vbox_tmpl.c<br>
> @@ -426,15 +426,14 @@ static void vboxUtf8toIID(virConnectPtr conn, char *uuidstr, vboxIID **iid) {<br>
>   * @param       aMaxSlotPerPort Input array of max slot per device port<br>
>   *<br>
>   */<br>
> -static char *vboxGenerateMediumName(virConnectPtr conn,<br>
> -                                    PRUint32  storageBus,<br>
> +static char *vboxGenerateMediumName(PRUint32  storageBus,<br>
>                                      PRInt32   deviceInst,<br>
>                                      PRInt32   devicePort,<br>
>                                      PRInt32   deviceSlot,<br>
>                                      PRUint32 *aMaxPortPerInst,<br>
>                                      PRUint32 *aMaxSlotPerPort) {<br>
> +    const char *prefix = NULL;<br>
>      char *name  = NULL;<br>
> -    int   len   = 0;<br>
>      int   total = 0;<br>
>      PRUint32 maxPortPerInst = 0;<br>
>      PRUint32 maxSlotPerPort = 0;<br>
> @@ -453,48 +452,20 @@ static char *vboxGenerateMediumName(virConnectPtr conn,<br>
>              + (devicePort * maxSlotPerPort)<br>
>              + deviceSlot;<br>
><br>
> -    if ((total >= 0) && (total < 26))<br>
> -        len = 4;<br>
> -    else if ((total >= 26) && (total < 26*26 + 26))<br>
> -        len = 5;<br>
> -    else if ((total >= 26*26 + 26) && (total < 26*26*26 + 26*26 + 26))<br>
> -        len = 6;<br>
> -    else<br>
> -        return NULL;<br>
> -<br>
> -    if (VIR_ALLOC_N(name, len) < 0) {<br>
> -        virReportOOMError(conn);<br>
> -        return NULL;<br>
> -    }<br>
> -<br>
> -    /* TODO: use virIndexToDiskName() here when available */<br>
>      if (storageBus == StorageBus_IDE) {<br>
> -        name[0] = 'h';<br>
> -        name[1] = 'd';<br>
> +        prefix = "hd";<br>
>      } else if (   (storageBus == StorageBus_SATA)<br>
>                 || (storageBus == StorageBus_SCSI)) {<br>
> -        name[0] = 's';<br>
> -        name[1] = 'd';<br>
> +        prefix = "sd";<br>
>      } else if (storageBus == StorageBus_Floppy) {<br>
> -        name[0] = 'f';<br>
> -        name[1] = 'd';<br>
> +        prefix = "fd";<br>
>      }<br>
><br>
> -    if (len == 4) {<br>
> -        name[2] = (char)(97 + total);<br>
> -    } else if (len == 5) {<br>
> -        name[2] = (char)(96 + (total / 26));<br>
> -        name[3] = (char)(97 + (total % 26));<br>
> -    } else if (len == 6) {<br>
> -        name[2] = (char)(96 + (total / 26*26));<br>
> -        name[3] = (char)(96 + ((total % (26*26)) / 26));<br>
> -        name[4] = (char)(97 + ((total % (26*26)) % 26));<br>
> -    }<br>
> +    name = virIndexToDiskName(total, prefix);<br>
><br>
> -    name[len - 1] = '\0';<br>
> -    DEBUG("name=%s, len=%d, total=%d, storageBus=%u, deviceInst=%d, "<br>
> +    DEBUG("name=%s, total=%d, storageBus=%u, deviceInst=%d, "<br>
>            "devicePort=%d deviceSlot=%d, maxPortPerInst=%u maxSlotPerPort=%u",<br>
> -          name, len, total, storageBus, deviceInst, devicePort,<br>
> +          NULLSTR(name), total, storageBus, deviceInst, devicePort,<br>
>            deviceSlot, maxPortPerInst, maxSlotPerPort);<br>
>      return name;<br>
>  }<br>
> @@ -2496,8 +2467,7 @@ static char *vboxDomainDumpXML(virDomainPtr dom, int flags) {<br>
><br>
>                  imediumattach->vtbl->GetPort(imediumattach, &devicePort);<br>
>                  imediumattach->vtbl->GetDevice(imediumattach, &deviceSlot);<br>
> -                def->disks[diskCount]->dst = vboxGenerateMediumName(dom->conn,<br>
> -                                                                    storageBus,<br>
> +                def->disks[diskCount]->dst = vboxGenerateMediumName(storageBus,<br>
>                                                                      deviceInst,<br>
>                                                                      devicePort,<br>
>                                                                      deviceSlot,<br>
<br>
</div></div>  ACK, now that we have the common routine ... let's use it !<br>
<br></blockquote><div><br></div><div>ACK to this, now that virIndexToDiskName() is available.</div><div><br></div><div>-pritesh</div></div>