qemu-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]