[libvirt] [PATCH 04/12] vbox: remove _vboxAttachDrivesOld

Dawid Zamirski dzamirski at datto.com
Thu Dec 29 20:34:25 UTC 2016


and fold vboxAttachDrivesNew into vboxAttachDrives
---
 src/vbox/vbox_common.c        |  45 +---
 src/vbox/vbox_tmpl.c          | 487 ------------------------------------------
 src/vbox/vbox_uniformed_api.h |   1 -
 3 files changed, 1 insertion(+), 532 deletions(-)

diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c
index af8a9f7..17a8024 100644
--- a/src/vbox/vbox_common.c
+++ b/src/vbox/vbox_common.c
@@ -1039,9 +1039,8 @@ vboxSetBootDeviceOrder(virDomainDefPtr def, vboxDriverPtr data,
 }
 
 static void
-vboxAttachDrivesNew(virDomainDefPtr def, vboxDriverPtr data, IMachine *machine)
+vboxAttachDrives(virDomainDefPtr def, vboxDriverPtr data, IMachine *machine)
 {
-    /* AttachDrives for 3.0 and later */
     size_t i;
     nsresult rc = 0;
     PRUint32 maxPortPerInst[StorageBus_Floppy + 1] = {};
@@ -1049,9 +1048,6 @@ vboxAttachDrivesNew(virDomainDefPtr def, vboxDriverPtr data, IMachine *machine)
     PRUnichar *storageCtlName = NULL;
     bool error = false;
 
-    if (gVBoxAPI.vboxAttachDrivesUseOld)
-        VIR_WARN("This function may not work in current vbox version");
-
     /* get the max port/slots/etc for the given storage bus */
     error = !vboxGetMaxPortSlotValues(data->vboxObj, maxPortPerInst,
                                       maxSlotPerPort);
@@ -1248,45 +1244,6 @@ vboxAttachDrivesNew(virDomainDefPtr def, vboxDriverPtr data, IMachine *machine)
 }
 
 static void
-vboxAttachDrives(virDomainDefPtr def, vboxDriverPtr data, IMachine *machine)
-{
-    /* Here, About the vboxAttachDrives. In fact,there is
-     * three different implementations. We name it as
-     * v1, v2 and v3.
-     *
-     * The first version(v1) is only used in vbox 2.2 and 3.0,
-     * v2 is used by 3.1 and 3.2, and v3 is used for later
-     * vbox versions. In sight of implementation, the v1 is
-     * totally different with v2 and v3. The v2 shares the same
-     * outline with v3, meanwhile the API they used has much
-     * difference.
-     *
-     * It seems we have no thing to do with old versions such as
-     * v1 and v2 when developing new vbox drivers. What's more,
-     * most of the vbox APIs used in v1 and v2 is incompatible with
-     * new vbox versions. It is a burden to put these APIs into
-     * vboxUniformedAPI, I prefer not to do that.
-     *
-     * After balancing the code size and the complied code size,
-     * I put my solution here. The v1 and v2 is a version specified
-     * code, which only be generated for first four version. The v3
-     * will be put in vbox_common.c, it be complied only once, then
-     * be used by all next vbox drivers.
-     *
-     * Check the flag vboxAttachDrivesUseOld can tell you which
-     * implementation to use. When the flag is set, we need use
-     * the old version though gVBoxAPI.vboxAttachDrivesOld. It
-     * will automatically point to v1 or v2 deponds on you version.
-     * If the flag is clear, just call vboxAttachDrivesNew, which
-     * is the v3 implementation.
-     */
-    if (gVBoxAPI.vboxAttachDrivesUseOld)
-        gVBoxAPI.vboxAttachDrivesOld(def, data, machine);
-    else
-        vboxAttachDrivesNew(def, data, machine);
-}
-
-static void
 vboxAttachSound(virDomainDefPtr def, IMachine *machine)
 {
     nsresult rc;
diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c
index 7fcf213..c9c946c 100644
--- a/src/vbox/vbox_tmpl.c
+++ b/src/vbox/vbox_tmpl.c
@@ -324,490 +324,6 @@ static virDomainState _vboxConvertState(PRUint32 state)
     }
 }
 
-#if VBOX_API_VERSION < 3001000
-
-static void
-_vboxAttachDrivesOld(virDomainDefPtr def, vboxDriverPtr data, IMachine *machine)
-{
-    size_t i;
-    nsresult rc;
-
-    if (def->ndisks == 0)
-        return;
-
-    for (i = 0; i < def->ndisks; i++) {
-        const char *src = virDomainDiskGetSource(def->disks[i]);
-        int type = virDomainDiskGetType(def->disks[i]);
-        int format = virDomainDiskGetFormat(def->disks[i]);
-
-        VIR_DEBUG("disk(%zu) type:       %d", i, type);
-        VIR_DEBUG("disk(%zu) device:     %d", i, def->disks[i]->device);
-        VIR_DEBUG("disk(%zu) bus:        %d", i, def->disks[i]->bus);
-        VIR_DEBUG("disk(%zu) src:        %s", i, src);
-        VIR_DEBUG("disk(%zu) dst:        %s", i, def->disks[i]->dst);
-        VIR_DEBUG("disk(%zu) driverName: %s", i,
-                  virDomainDiskGetDriver(def->disks[i]));
-        VIR_DEBUG("disk(%zu) driverType: %s", i,
-                  virStorageFileFormatTypeToString(format));
-        VIR_DEBUG("disk(%zu) cachemode:  %d", i, def->disks[i]->cachemode);
-        VIR_DEBUG("disk(%zu) readonly:   %s", i, (def->disks[i]->src->readonly
-                                             ? "True" : "False"));
-        VIR_DEBUG("disk(%zu) shared:     %s", i, (def->disks[i]->src->shared
-                                             ? "True" : "False"));
-
-        if (def->disks[i]->device == VIR_DOMAIN_DISK_DEVICE_CDROM) {
-            if (type == VIR_STORAGE_TYPE_FILE && src) {
-                IDVDDrive *dvdDrive = NULL;
-                /* Currently CDROM/DVD Drive is always IDE
-                 * Secondary Master so neglecting the following
-                 * parameters:
-                 *      def->disks[i]->bus
-                 *      def->disks[i]->dst
-                 */
-
-                machine->vtbl->GetDVDDrive(machine, &dvdDrive);
-                if (dvdDrive) {
-                    IDVDImage *dvdImage = NULL;
-                    PRUnichar *dvdfileUtf16 = NULL;
-                    vboxIID dvduuid = VBOX_IID_INITIALIZER;
-                    vboxIID dvdemptyuuid = VBOX_IID_INITIALIZER;
-
-                    VBOX_UTF8_TO_UTF16(src, &dvdfileUtf16);
-
-                    data->vboxObj->vtbl->FindDVDImage(data->vboxObj,
-                                                      dvdfileUtf16, &dvdImage);
-                    if (!dvdImage) {
-                        data->vboxObj->vtbl->OpenDVDImage(data->vboxObj,
-                                                          dvdfileUtf16,
-                                                          dvdemptyuuid.value,
-                                                          &dvdImage);
-                    }
-                    if (dvdImage) {
-                        rc = dvdImage->vtbl->imedium.GetId((IMedium *)dvdImage,
-                                                           &dvduuid.value);
-                        if (NS_FAILED(rc)) {
-                            virReportError(VIR_ERR_INTERNAL_ERROR,
-                                           _("can't get the uuid of the file to "
-                                             "be attached to cdrom: %s, rc=%08x"),
-                                           src, (unsigned)rc);
-                        } else {
-                            rc = dvdDrive->vtbl->MountImage(dvdDrive, dvduuid.value);
-                            if (NS_FAILED(rc)) {
-                                virReportError(VIR_ERR_INTERNAL_ERROR,
-                                               _("could not attach the file to cdrom: %s, rc=%08x"),
-                                               src, (unsigned)rc);
-                            } else {
-                                DEBUGIID("CD/DVDImage UUID:", dvduuid.value);
-                            }
-                        }
-
-                        VBOX_MEDIUM_RELEASE(dvdImage);
-                    }
-                    vboxIIDUnalloc(&dvduuid);
-                    VBOX_UTF16_FREE(dvdfileUtf16);
-                    VBOX_RELEASE(dvdDrive);
-                }
-            } else if (type == VIR_STORAGE_TYPE_BLOCK) {
-            }
-        } else if (def->disks[i]->device == VIR_DOMAIN_DISK_DEVICE_DISK) {
-            if (type == VIR_STORAGE_TYPE_FILE && src) {
-                IHardDisk *hardDisk = NULL;
-                PRUnichar *hddfileUtf16 = NULL;
-                vboxIID hdduuid = VBOX_IID_INITIALIZER;
-                PRUnichar *hddEmpty = NULL;
-                /* Current Limitation: Harddisk can't be connected to
-                 * Secondary Master as Secondary Master is always used
-                 * for CD/DVD Drive, so don't connect the harddisk if it
-                 * is requested to be connected to Secondary master
-                 */
-
-                VBOX_UTF8_TO_UTF16(src, &hddfileUtf16);
-                VBOX_UTF8_TO_UTF16("", &hddEmpty);
-
-                data->vboxObj->vtbl->FindHardDisk(data->vboxObj, hddfileUtf16,
-                                                  &hardDisk);
-
-                if (!hardDisk) {
-# if VBOX_API_VERSION == 2002000
-                    data->vboxObj->vtbl->OpenHardDisk(data->vboxObj,
-                                                      hddfileUtf16,
-                                                      AccessMode_ReadWrite,
-                                                      &hardDisk);
-# else
-                    data->vboxObj->vtbl->OpenHardDisk(data->vboxObj,
-                                                      hddfileUtf16,
-                                                      AccessMode_ReadWrite,
-                                                      0,
-                                                      hddEmpty,
-                                                      0,
-                                                      hddEmpty,
-                                                      &hardDisk);
-# endif
-                }
-
-                if (hardDisk) {
-                    rc = hardDisk->vtbl->imedium.GetId((IMedium *)hardDisk,
-                                                       &hdduuid.value);
-                    if (NS_FAILED(rc)) {
-                        virReportError(VIR_ERR_INTERNAL_ERROR,
-                                       _("can't get the uuid of the file to be "
-                                         "attached as harddisk: %s, rc=%08x"),
-                                       src, (unsigned)rc);
-                    } else {
-                        if (def->disks[i]->src->readonly) {
-                            hardDisk->vtbl->SetType(hardDisk,
-                                                    HardDiskType_Immutable);
-                            VIR_DEBUG("setting harddisk to readonly");
-                        } else if (!def->disks[i]->src->readonly) {
-                            hardDisk->vtbl->SetType(hardDisk,
-                                                    HardDiskType_Normal);
-                            VIR_DEBUG("setting harddisk type to normal");
-                        }
-                        if (def->disks[i]->bus == VIR_DOMAIN_DISK_BUS_IDE) {
-                            if (STREQ(def->disks[i]->dst, "hdc")) {
-                                VIR_DEBUG("Not connecting harddisk to hdc as hdc"
-                                       " is taken by CD/DVD Drive");
-                            } else {
-                                PRInt32 channel = 0;
-                                PRInt32 device = 0;
-                                PRUnichar *hddcnameUtf16 = NULL;
-
-                                char *hddcname;
-                                ignore_value(VIR_STRDUP(hddcname, "IDE"));
-                                VBOX_UTF8_TO_UTF16(hddcname, &hddcnameUtf16);
-                                VIR_FREE(hddcname);
-
-                                if (STREQ(def->disks[i]->dst, "hda")) {
-                                    channel = 0;
-                                    device = 0;
-                                } else if (STREQ(def->disks[i]->dst, "hdb")) {
-                                    channel = 0;
-                                    device = 1;
-                                } else if (STREQ(def->disks[i]->dst, "hdd")) {
-                                    channel = 1;
-                                    device = 1;
-                                }
-
-                                rc = machine->vtbl->AttachHardDisk(machine,
-                                                                   hdduuid.value,
-                                                                   hddcnameUtf16,
-                                                                   channel,
-                                                                   device);
-                                VBOX_UTF16_FREE(hddcnameUtf16);
-
-                                if (NS_FAILED(rc)) {
-                                    virReportError(VIR_ERR_INTERNAL_ERROR,
-                                                   _("could not attach the file as "
-                                                     "harddisk: %s, rc=%08x"),
-                                                   src, (unsigned)rc);
-                                } else {
-                                    DEBUGIID("Attached HDD with UUID", hdduuid.value);
-                                }
-                            }
-                        }
-                    }
-                    VBOX_MEDIUM_RELEASE(hardDisk);
-                }
-                vboxIIDUnalloc(&hdduuid);
-                VBOX_UTF16_FREE(hddEmpty);
-                VBOX_UTF16_FREE(hddfileUtf16);
-            } else if (type == VIR_STORAGE_TYPE_BLOCK) {
-            }
-        } else if (def->disks[i]->device == VIR_DOMAIN_DISK_DEVICE_FLOPPY) {
-            if (type == VIR_STORAGE_TYPE_FILE && src) {
-                IFloppyDrive *floppyDrive;
-                machine->vtbl->GetFloppyDrive(machine, &floppyDrive);
-                if (floppyDrive) {
-                    rc = floppyDrive->vtbl->SetEnabled(floppyDrive, 1);
-                    if (NS_SUCCEEDED(rc)) {
-                        IFloppyImage *floppyImage = NULL;
-                        PRUnichar *fdfileUtf16 = NULL;
-                        vboxIID fduuid = VBOX_IID_INITIALIZER;
-                        vboxIID fdemptyuuid = VBOX_IID_INITIALIZER;
-
-                        VBOX_UTF8_TO_UTF16(src, &fdfileUtf16);
-                        rc = data->vboxObj->vtbl->FindFloppyImage(data->vboxObj,
-                                                                  fdfileUtf16,
-                                                                  &floppyImage);
-
-                        if (!floppyImage) {
-                            data->vboxObj->vtbl->OpenFloppyImage(data->vboxObj,
-                                                                 fdfileUtf16,
-                                                                 fdemptyuuid.value,
-                                                                 &floppyImage);
-                        }
-
-                        if (floppyImage) {
-                            rc = floppyImage->vtbl->imedium.GetId((IMedium *)floppyImage,
-                                                                  &fduuid.value);
-                            if (NS_FAILED(rc)) {
-                                virReportError(VIR_ERR_INTERNAL_ERROR,
-                                               _("can't get the uuid of the file to "
-                                                 "be attached to floppy drive: %s, rc=%08x"),
-                                               src, (unsigned)rc);
-                            } else {
-                                rc = floppyDrive->vtbl->MountImage(floppyDrive,
-                                                                   fduuid.value);
-                                if (NS_FAILED(rc)) {
-                                    virReportError(VIR_ERR_INTERNAL_ERROR,
-                                                   _("could not attach the file to "
-                                                     "floppy drive: %s, rc=%08x"),
-                                                   src, (unsigned)rc);
-                                } else {
-                                    DEBUGIID("floppyImage UUID", fduuid.value);
-                                }
-                            }
-                            VBOX_MEDIUM_RELEASE(floppyImage);
-                        }
-                        vboxIIDUnalloc(&fduuid);
-                        VBOX_UTF16_FREE(fdfileUtf16);
-                    }
-                    VBOX_RELEASE(floppyDrive);
-                }
-            } else if (type == VIR_STORAGE_TYPE_BLOCK) {
-            }
-        }
-    }
-}
-
-#elif VBOX_API_VERSION < 4000000
-
-static void
-_vboxAttachDrivesOld(virDomainDefPtr def, vboxDriverPtr data, IMachine *machine)
-{
-    size_t i;
-    nsresult rc = 0;
-
-    PRUint32 maxPortPerInst[StorageBus_Floppy + 1] = {};
-    PRUint32 maxSlotPerPort[StorageBus_Floppy + 1] = {};
-    PRUnichar *storageCtlName = NULL;
-    bool error = false;
-
-    /* get the max port/slots/etc for the given storage bus */
-    error = !vboxGetMaxPortSlotValues(data->vboxObj, maxPortPerInst,
-                                      maxSlotPerPort);
-
-    /* add a storage controller for the mediums to be attached */
-    /* this needs to change when multiple controller are supported for
-     * ver > 3.1 */
-    {
-        IStorageController *storageCtl = NULL;
-        PRUnichar *sName = NULL;
-
-        VBOX_UTF8_TO_UTF16("IDE Controller", &sName);
-        machine->vtbl->AddStorageController(machine,
-                                            sName,
-                                            StorageBus_IDE,
-                                            &storageCtl);
-        VBOX_UTF16_FREE(sName);
-        VBOX_RELEASE(storageCtl);
-
-        VBOX_UTF8_TO_UTF16("SATA Controller", &sName);
-        machine->vtbl->AddStorageController(machine,
-                                            sName,
-                                            StorageBus_SATA,
-                                            &storageCtl);
-        VBOX_UTF16_FREE(sName);
-        VBOX_RELEASE(storageCtl);
-
-        VBOX_UTF8_TO_UTF16("SCSI Controller", &sName);
-        machine->vtbl->AddStorageController(machine,
-                                            sName,
-                                            StorageBus_SCSI,
-                                            &storageCtl);
-        VBOX_UTF16_FREE(sName);
-        VBOX_RELEASE(storageCtl);
-
-        VBOX_UTF8_TO_UTF16("Floppy Controller", &sName);
-        machine->vtbl->AddStorageController(machine,
-                                            sName,
-                                            StorageBus_Floppy,
-                                            &storageCtl);
-        VBOX_UTF16_FREE(sName);
-        VBOX_RELEASE(storageCtl);
-    }
-
-    for (i = 0; i < def->ndisks && !error; i++) {
-        const char *src = virDomainDiskGetSource(def->disks[i]);
-        int type = virDomainDiskGetType(def->disks[i]);
-        int format = virDomainDiskGetFormat(def->disks[i]);
-
-        VIR_DEBUG("disk(%zu) type:       %d", i, type);
-        VIR_DEBUG("disk(%zu) device:     %d", i, def->disks[i]->device);
-        VIR_DEBUG("disk(%zu) bus:        %d", i, def->disks[i]->bus);
-        VIR_DEBUG("disk(%zu) src:        %s", i, src);
-        VIR_DEBUG("disk(%zu) dst:        %s", i, def->disks[i]->dst);
-        VIR_DEBUG("disk(%zu) driverName: %s", i,
-                  virDomainDiskGetDriver(def->disks[i]));
-        VIR_DEBUG("disk(%zu) driverType: %s", i,
-                  virStorageFileFormatTypeToString(format));
-        VIR_DEBUG("disk(%zu) cachemode:  %d", i, def->disks[i]->cachemode);
-        VIR_DEBUG("disk(%zu) readonly:   %s", i, (def->disks[i]->src->readonly
-                                             ? "True" : "False"));
-        VIR_DEBUG("disk(%zu) shared:     %s", i, (def->disks[i]->src->shared
-                                             ? "True" : "False"));
-
-        if (type == VIR_STORAGE_TYPE_FILE && src) {
-            IMedium *medium = NULL;
-            PRUnichar *mediumUUID = NULL;
-            PRUnichar *mediumFileUtf16 = NULL;
-            PRUint32 storageBus = StorageBus_Null;
-            PRUint32 deviceType = DeviceType_Null;
-            PRInt32 deviceInst = 0;
-            PRInt32 devicePort = 0;
-            PRInt32 deviceSlot = 0;
-
-            VBOX_UTF8_TO_UTF16(src, &mediumFileUtf16);
-
-            if (def->disks[i]->device == VIR_DOMAIN_DISK_DEVICE_DISK) {
-                deviceType = DeviceType_HardDisk;
-                data->vboxObj->vtbl->FindHardDisk(data->vboxObj,
-                                                  mediumFileUtf16, &medium);
-            } else if (def->disks[i]->device == VIR_DOMAIN_DISK_DEVICE_CDROM) {
-                deviceType = DeviceType_DVD;
-                data->vboxObj->vtbl->FindDVDImage(data->vboxObj,
-                                                  mediumFileUtf16, &medium);
-            } else if (def->disks[i]->device == VIR_DOMAIN_DISK_DEVICE_FLOPPY) {
-                deviceType = DeviceType_Floppy;
-                data->vboxObj->vtbl->FindFloppyImage(data->vboxObj,
-                                                     mediumFileUtf16, &medium);
-            } else {
-                VBOX_UTF16_FREE(mediumFileUtf16);
-                continue;
-            }
-
-            if (!medium) {
-                PRUnichar *mediumEmpty = NULL;
-
-                VBOX_UTF8_TO_UTF16("", &mediumEmpty);
-
-                if (def->disks[i]->device == VIR_DOMAIN_DISK_DEVICE_DISK) {
-                    rc = data->vboxObj->vtbl->OpenHardDisk(data->vboxObj,
-                                                           mediumFileUtf16,
-                                                           AccessMode_ReadWrite,
-                                                           false,
-                                                           mediumEmpty,
-                                                           false,
-                                                           mediumEmpty,
-                                                           &medium);
-                } else if (def->disks[i]->device ==
-                           VIR_DOMAIN_DISK_DEVICE_CDROM) {
-                    rc = data->vboxObj->vtbl->OpenDVDImage(data->vboxObj,
-                                                           mediumFileUtf16,
-                                                           mediumEmpty,
-                                                           &medium);
-                } else if (def->disks[i]->device ==
-                           VIR_DOMAIN_DISK_DEVICE_FLOPPY) {
-                    rc = data->vboxObj->vtbl->OpenFloppyImage(data->vboxObj,
-                                                              mediumFileUtf16,
-                                                              mediumEmpty,
-                                                              &medium);
-                } else {
-                    rc = 0;
-                }
-                VBOX_UTF16_FREE(mediumEmpty);
-            }
-
-            if (!medium) {
-                virReportError(VIR_ERR_INTERNAL_ERROR,
-                               _("Failed to attach the following disk/dvd/floppy "
-                                 "to the machine: %s, rc=%08x"),
-                               src, (unsigned)rc);
-                VBOX_UTF16_FREE(mediumFileUtf16);
-                continue;
-            }
-
-            rc = medium->vtbl->GetId(medium, &mediumUUID);
-            if (NS_FAILED(rc)) {
-                virReportError(VIR_ERR_INTERNAL_ERROR,
-                               _("can't get the uuid of the file to be attached "
-                                 "as harddisk/dvd/floppy: %s, rc=%08x"),
-                               src, (unsigned)rc);
-                VBOX_RELEASE(medium);
-                VBOX_UTF16_FREE(mediumFileUtf16);
-                continue;
-            }
-
-            if (def->disks[i]->device == VIR_DOMAIN_DISK_DEVICE_DISK) {
-                if (def->disks[i]->src->readonly) {
-                    medium->vtbl->SetType(medium, MediumType_Immutable);
-                    VIR_DEBUG("setting harddisk to immutable");
-                } else if (!def->disks[i]->src->readonly) {
-                    medium->vtbl->SetType(medium, MediumType_Normal);
-                    VIR_DEBUG("setting harddisk type to normal");
-                }
-            }
-
-            if (def->disks[i]->bus == VIR_DOMAIN_DISK_BUS_IDE) {
-                VBOX_UTF8_TO_UTF16("IDE Controller", &storageCtlName);
-                storageBus = StorageBus_IDE;
-            } else if (def->disks[i]->bus == VIR_DOMAIN_DISK_BUS_SATA) {
-                VBOX_UTF8_TO_UTF16("SATA Controller", &storageCtlName);
-                storageBus = StorageBus_SATA;
-            } else if (def->disks[i]->bus == VIR_DOMAIN_DISK_BUS_SCSI) {
-                VBOX_UTF8_TO_UTF16("SCSI Controller", &storageCtlName);
-                storageBus = StorageBus_SCSI;
-            } else if (def->disks[i]->bus == VIR_DOMAIN_DISK_BUS_FDC) {
-                VBOX_UTF8_TO_UTF16("Floppy Controller", &storageCtlName);
-                storageBus = StorageBus_Floppy;
-            }
-
-            /* get the device details i.e instance, port and slot */
-            if (!vboxGetDeviceDetails(def->disks[i]->dst,
-                                      maxPortPerInst,
-                                      maxSlotPerPort,
-                                      storageBus,
-                                      &deviceInst,
-                                      &devicePort,
-                                      &deviceSlot)) {
-                virReportError(VIR_ERR_INTERNAL_ERROR,
-                               _("can't get the port/slot number of "
-                                 "harddisk/dvd/floppy to be attached: "
-                                 "%s, rc=%08x"),
-                               src, (unsigned)rc);
-                VBOX_RELEASE(medium);
-                VBOX_UTF16_FREE(mediumUUID);
-                VBOX_UTF16_FREE(mediumFileUtf16);
-                continue;
-            }
-
-            /* attach the harddisk/dvd/Floppy to the storage controller */
-            rc = machine->vtbl->AttachDevice(machine,
-                                             storageCtlName,
-                                             devicePort,
-                                             deviceSlot,
-                                             deviceType,
-                                             mediumUUID);
-
-            if (NS_FAILED(rc)) {
-                virReportError(VIR_ERR_INTERNAL_ERROR,
-                               _("could not attach the file as "
-                                 "harddisk/dvd/floppy: %s, rc=%08x"),
-                               src, (unsigned)rc);
-            } else {
-                DEBUGIID("Attached HDD/DVD/Floppy with UUID", mediumUUID);
-            }
-
-            VBOX_RELEASE(medium);
-            VBOX_UTF16_FREE(mediumUUID);
-            VBOX_UTF16_FREE(mediumFileUtf16);
-            VBOX_UTF16_FREE(storageCtlName);
-        }
-    }
-}
-
-#else /* VBOX_API_VERSION >= 4000000 */
-
-static void
-_vboxAttachDrivesOld(virDomainDefPtr def ATTRIBUTE_UNUSED,
-                     vboxDriverPtr data ATTRIBUTE_UNUSED,
-                     IMachine *machine ATTRIBUTE_UNUSED)
-{
-    vboxUnsupported();
-}
-
-#endif /* VBOX_API_VERSION >= 4000000 */
-
 static int
 _vboxDomainSnapshotRestore(virDomainPtr dom,
                           IMachine *machine,
@@ -3808,7 +3324,6 @@ void NAME(InstallUniformedAPI)(vboxUniformedAPI *pVBoxAPI)
     pVBoxAPI->detachDevices = _detachDevices;
     pVBoxAPI->unregisterMachine = _unregisterMachine;
     pVBoxAPI->deleteConfig = _deleteConfig;
-    pVBoxAPI->vboxAttachDrivesOld = _vboxAttachDrivesOld;
     pVBoxAPI->vboxConvertState = _vboxConvertState;
     pVBoxAPI->dumpIDEHDDsOld = _dumpIDEHDDsOld;
     pVBoxAPI->dumpDVD = _dumpDVD;
@@ -3860,12 +3375,10 @@ void NAME(InstallUniformedAPI)(vboxUniformedAPI *pVBoxAPI)
     /* Get machine for the call to VBOX_SESSION_OPEN_EXISTING */
     pVBoxAPI->getMachineForSession = 1;
     pVBoxAPI->detachDevicesExplicitly = 0;
-    pVBoxAPI->vboxAttachDrivesUseOld = 0;
     pVBoxAPI->supportScreenshot = 1;
 #else /* VBOX_API_VERSION < 4000000 */
     pVBoxAPI->getMachineForSession = 0;
     pVBoxAPI->detachDevicesExplicitly = 1;
-    pVBoxAPI->vboxAttachDrivesUseOld = 1;
     pVBoxAPI->supportScreenshot = 0;
 #endif /* VBOX_API_VERSION < 4000000 */
 
diff --git a/src/vbox/vbox_uniformed_api.h b/src/vbox/vbox_uniformed_api.h
index 3b2b7a8..6c4cf3d 100644
--- a/src/vbox/vbox_uniformed_api.h
+++ b/src/vbox/vbox_uniformed_api.h
@@ -605,7 +605,6 @@ typedef struct {
     bool detachDevicesExplicitly;
     bool chipsetType;
     bool accelerate2DVideo;
-    bool vboxAttachDrivesUseOld;
     bool oldMediumInterface;
     bool vboxSnapshotRedefine;
     bool supportScreenshot;
-- 
2.9.3




More information about the libvir-list mailing list