qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 1/4] qdev: integrate reset


From: Gerd Hoffmann
Subject: [Qemu-devel] [PATCH 1/4] qdev: integrate reset
Date: Tue, 1 Sep 2009 09:56:12 +0200

Signed-off-by: Gerd Hoffmann <address@hidden>
---
 hw/qdev.c |   11 ++++++++++-
 hw/qdev.h |    3 +++
 2 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/hw/qdev.c b/hw/qdev.c
index ff2f096..e045968 100644
--- a/hw/qdev.c
+++ b/hw/qdev.c
@@ -211,12 +211,21 @@ DeviceState *qdev_device_add(QemuOpts *opts)
    calling this function.  */
 int qdev_init(DeviceState *dev)
 {
-    return dev->info->init(dev, dev->info);
+    int rc;
+
+    rc = dev->info->init(dev, dev->info);
+    if (rc < 0)
+        return rc;
+    if (dev->info->reset)
+        qemu_register_reset(dev->info->reset, dev);
+    return 0;
 }
 
 /* Unlink device from bus and free the structure.  */
 void qdev_free(DeviceState *dev)
 {
+    if (dev->info->reset)
+        qemu_unregister_reset(dev->info->reset, dev);
     LIST_REMOVE(dev, sibling);
     qemu_free(dev);
 }
diff --git a/hw/qdev.h b/hw/qdev.h
index af735d7..fde29ea 100644
--- a/hw/qdev.h
+++ b/hw/qdev.h
@@ -110,6 +110,9 @@ struct DeviceInfo {
     Property *props;
     int no_user;
 
+    /* callbacks */
+    QEMUResetHandler *reset;
+
     /* Private to qdev / bus.  */
     qdev_initfn init;
     BusInfo *bus_info;
-- 
1.6.2.5





reply via email to

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