}
+void virDomainDiskRemove(virDomainDefPtr def, size_t i)
+{
+ if (def->ndisks > 1) {
+ memmove(def->disks + i,
+ def->disks + i + 1,
+ sizeof(*def->disks) *
+ (def->ndisks - (i + 1)));
+ def->ndisks--;
+ if (VIR_REALLOC_N(def->disks, def->ndisks) < 0) {
+ /* ignore, harmless */
+ }
+ } else {
+ VIR_FREE(def->disks);
+ def->ndisks = 0;
+ }
+}
+
+
int virDomainControllerInsert(virDomainDefPtr def,
virDomainControllerDefPtr controller)
{
virDomainDiskDefPtr disk);
int virDomainDiskDefAssignAddress(virCapsPtr caps, virDomainDiskDefPtr def);
+void virDomainDiskRemove(virDomainDefPtr def, size_t i);
+
int virDomainControllerInsert(virDomainDefPtr def,
virDomainControllerDefPtr controller);
void virDomainControllerInsertPreAlloced(virDomainDefPtr def,
virDomainDiskDeviceTypeToString;
virDomainDiskInsert;
virDomainDiskInsertPreAlloced;
+virDomainDiskRemove;
virDomainDiskDefAssignAddress;
virDomainControllerInsert;
virDomainControllerInsertPreAlloced;
return -1;
}
-static inline void qemudShrinkDisks(virDomainDefPtr def, size_t i)
-{
- if (def->ndisks > 1) {
- memmove(def->disks + i,
- def->disks + i + 1,
- sizeof(*def->disks) *
- (def->ndisks - (i + 1)));
- def->ndisks--;
- if (VIR_REALLOC_N(def->disks, def->ndisks) < 0) {
- /* ignore, harmless */
- }
- } else {
- VIR_FREE(def->disks);
- def->ndisks = 0;
- }
-}
static int qemudDomainDetachPciDiskDevice(struct qemud_driver *driver,
virDomainObjPtr vm,
qemuDomainPCIAddressReleaseAddr(priv->pciaddrs, &detach->info) < 0)
VIR_WARN("Unable to release PCI address on %s", dev->data.disk->src);
- qemudShrinkDisks(vm->def, i);
+ virDomainDiskRemove(vm->def, i);
virDomainDiskDefFree(detach);
}
qemuDomainObjExitMonitorWithDriver(driver, vm);
- qemudShrinkDisks(vm->def, i);
+ virDomainDiskRemove(vm->def, i);
virDomainDiskDefFree(detach);