virDomainControllerDefPtr
virDomainDeviceFindSCSIController(const virDomainDef *def,
- virDomainDeviceInfoPtr info)
+ const virDomainDeviceDriveAddress *addr)
{
size_t i;
for (i = 0; i < def->ncontrollers; i++) {
if (def->controllers[i]->type == VIR_DOMAIN_CONTROLLER_TYPE_SCSI &&
- def->controllers[i]->idx == info->addr.drive.controller)
+ def->controllers[i]->idx == addr->controller)
return def->controllers[i];
}
* So let's grab the model from it and update the model we're
* going to add as long as this one isn't undefined. The premise
* being keeping the same controller model for all SCSI hostdevs. */
- cont = virDomainDeviceFindSCSIController(def, hostdev->info);
+ cont = virDomainDeviceFindSCSIController(def, &hostdev->info->addr.drive);
if (cont && cont->model != -1)
newModel = cont->model;
}
void virDomainDiskSetFormat(virDomainDiskDefPtr def, int format);
virDomainControllerDefPtr
virDomainDeviceFindSCSIController(const virDomainDef *def,
- virDomainDeviceInfoPtr info);
+ const virDomainDeviceDriveAddress *addr);
+virDomainDiskDefPtr virDomainDiskFindByBusAndDst(virDomainDefPtr def,
+ int bus,
+ char *dst);
virDomainControllerDefPtr virDomainControllerDefNew(virDomainControllerType type);
void virDomainControllerDefFree(virDomainControllerDefPtr def);
{
virDomainControllerDefPtr cont;
- if (!(cont = virDomainDeviceFindSCSIController(def, info))) {
+ if (!(cont = virDomainDeviceFindSCSIController(def, &info->addr.drive))) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("unable to find a SCSI controller for idx=%d"),
info->addr.drive.controller);
case VIR_DOMAIN_DISK_BUS_SCSI:
VBOX_UTF8_TO_UTF16(VBOX_CONTROLLER_SCSI_NAME, &storageCtlName);
- cont = virDomainDeviceFindSCSIController(def, &disk->info);
+ cont = virDomainDeviceFindSCSIController(def, &disk->info.addr.drive);
if (cont && cont->model == VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LSISAS1068) {
VBOX_UTF16_FREE(storageCtlName);
VBOX_UTF8_TO_UTF16(VBOX_CONTROLLER_SAS_NAME, &storageCtlName);