[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 20/45] ide: Provide IDEDeviceInfo method exit()
From: |
Markus Armbruster |
Subject: |
[Qemu-devel] [PATCH v2 20/45] ide: Provide IDEDeviceInfo method exit() |
Date: |
Wed, 3 Aug 2011 15:07:59 +0200 |
Signed-off-by: Markus Armbruster <address@hidden>
---
hw/ide/internal.h | 1 +
hw/ide/qdev.c | 12 ++++++++++++
2 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/hw/ide/internal.h b/hw/ide/internal.h
index 3e56b45..0b0b8a7 100644
--- a/hw/ide/internal.h
+++ b/hw/ide/internal.h
@@ -529,6 +529,7 @@ typedef int (*ide_qdev_initfn)(IDEDevice *dev);
struct IDEDeviceInfo {
DeviceInfo qdev;
ide_qdev_initfn init;
+ ide_qdev_initfn exit;
};
#define BM_STATUS_DMAING 0x01
diff --git a/hw/ide/qdev.c b/hw/ide/qdev.c
index 6bd8d20..3b7b306 100644
--- a/hw/ide/qdev.c
+++ b/hw/ide/qdev.c
@@ -91,9 +91,21 @@ err:
return -1;
}
+static int ide_qdev_exit(DeviceState *qdev)
+{
+ IDEDevice *dev = DO_UPCAST(IDEDevice, qdev, qdev);
+ IDEDeviceInfo *info = DO_UPCAST(IDEDeviceInfo, qdev, qdev->info);
+
+ if (info->exit) {
+ return info->exit(dev);
+ }
+ return 0;
+}
+
static void ide_qdev_register(IDEDeviceInfo *info)
{
info->qdev.init = ide_qdev_init;
+ info->qdev.exit = ide_qdev_exit;
info->qdev.bus_info = &ide_bus_info;
qdev_register(&info->qdev);
}
--
1.7.6
- [Qemu-devel] [PATCH v2 33/45] xen: Clean up pci_piix3_xen_ide_unplug()'s test for "not a CD", (continued)
- [Qemu-devel] [PATCH v2 33/45] xen: Clean up pci_piix3_xen_ide_unplug()'s test for "not a CD", Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 21/45] ide/atapi: Don't fail eject when tray is already open, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 25/45] ide: Give vmstate structs internal linkage where possible, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 34/45] spitz tosa: Simplify "drive is suitable for microdrive" test, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 42/45] block: Reset buffer alignment on detach, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 22/45] ide/atapi: Avoid physical/virtual tray state mismatch, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 26/45] ide/atapi: Preserve tray state on migration, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 39/45] hw: Trim superfluous #include "block_int.h", Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 32/45] savevm: Include writable devices with removable media, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 29/45] block: Leave tracking media change to device models, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 20/45] ide: Provide IDEDeviceInfo method exit(),
Markus Armbruster <=
- [Qemu-devel] [PATCH v2 36/45] block: Drop BlockDriverState member removable, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 45/45] ide/atapi scsi-disk: Make monitor eject -f, then change work, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 41/45] block: New bdrv_set_buffer_alignment(), Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 30/45] fdc: Make media change detection more robust, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 44/45] block: New change_media_cb() parameter load, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 27/45] scsi-disk: Preserve tray state on migration, Markus Armbruster, 2011/08/03