[libvirt] [PATCH] vbox: Use virIndexToDiskName() in vboxGenerateMediumName()

Pritesh Kothari priteshkotharic at googlemail.com
Mon Dec 7 06:42:05 UTC 2009


On Fri, Dec 4, 2009 at 8:24 PM, Daniel Veillard <veillard at redhat.com> wrote:

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

-pritesh
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20091207/6855d60e/attachment-0001.htm>


More information about the libvir-list mailing list