monitor: convert do_device_del() to QObject, QError
authorMarkus Armbruster <armbru@redhat.com>
Mon, 22 Mar 2010 10:38:14 +0000 (11:38 +0100)
committerAurelien Jarno <aurelien@aurel32.net>
Sun, 18 Apr 2010 21:46:48 +0000 (23:46 +0200)
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
hw/qdev.c
hw/qdev.h
qemu-monitor.hx

index 0612dc0ba5efda17c9292fda9d8b141b47162229..5ca126b49fafd3e5dbf194acbb182f4e0f47839d 100644 (file)
--- a/hw/qdev.c
+++ b/hw/qdev.c
@@ -799,15 +799,15 @@ int do_device_add(Monitor *mon, const QDict *qdict, QObject **ret_data)
     return 0;
 }
 
-void do_device_del(Monitor *mon, const QDict *qdict)
+int do_device_del(Monitor *mon, const QDict *qdict, QObject **ret_data)
 {
     const char *id = qdict_get_str(qdict, "id");
     DeviceState *dev;
 
     dev = qdev_find_recursive(main_system_bus, id);
     if (NULL == dev) {
-        error_report("Device '%s' not found", id);
-        return;
+        qerror_report(QERR_DEVICE_NOT_FOUND, id);
+        return -1;
     }
-    qdev_unplug(dev);
+    return qdev_unplug(dev);
 }
index 9475705b7b4d18c12506fdb24f46f400f60df1cd..40373c856d3d1e8f6b1705c1fa54cde687b5731a 100644 (file)
--- a/hw/qdev.h
+++ b/hw/qdev.h
@@ -176,7 +176,7 @@ void qbus_free(BusState *bus);
 void do_info_qtree(Monitor *mon);
 void do_info_qdm(Monitor *mon);
 int do_device_add(Monitor *mon, const QDict *qdict, QObject **ret_data);
-void do_device_del(Monitor *mon, const QDict *qdict);
+int do_device_del(Monitor *mon, const QDict *qdict, QObject **ret_data);
 
 /*** qdev-properties.c ***/
 
index 5308f364e7196de8f2e85367be4685ad570d6bf1..d290b4b57fcbda6a9aa02251f8b9587f7856e711 100644 (file)
@@ -589,7 +589,8 @@ ETEXI
         .args_type  = "id:s",
         .params     = "device",
         .help       = "remove device",
-        .mhandler.cmd = do_device_del,
+        .user_print = monitor_user_noop,
+        .mhandler.cmd_new = do_device_del,
     },
 
 STEXI