[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 23/40] qapi event: convert DEVICE_DELETED
From: |
Luiz Capitulino |
Subject: |
[Qemu-devel] [PULL 23/40] qapi event: convert DEVICE_DELETED |
Date: |
Thu, 19 Jun 2014 15:39:35 -0400 |
From: Wenchao Xia <address@hidden>
Signed-off-by: Wenchao Xia <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Luiz Capitulino <address@hidden>
---
docs/qmp/qmp-events.txt | 18 ------------------
hw/core/qdev.c | 12 ++----------
qapi-event.json | 16 ++++++++++++++++
3 files changed, 18 insertions(+), 28 deletions(-)
diff --git a/docs/qmp/qmp-events.txt b/docs/qmp/qmp-events.txt
index df15dc8..fda68df 100644
--- a/docs/qmp/qmp-events.txt
+++ b/docs/qmp/qmp-events.txt
@@ -158,24 +158,6 @@ Example:
Note: The "ready to complete" status is always reset by a BLOCK_JOB_ERROR
event.
-DEVICE_DELETED
---------------
-
-Emitted whenever the device removal completion is acknowledged
-by the guest.
-At this point, it's safe to reuse the specified device ID.
-Device removal can be initiated by the guest or by HMP/QMP commands.
-
-Data:
-
-- "device": device name (json-string, optional)
-- "path": device path (json-string)
-
-{ "event": "DEVICE_DELETED",
- "data": { "device": "virtio-net-pci-0",
- "path": "/machine/peripheral/virtio-net-pci-0" },
- "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
-
DEVICE_TRAY_MOVED
-----------------
diff --git a/hw/core/qdev.c b/hw/core/qdev.c
index e65a5aa..cbe8bdd 100644
--- a/hw/core/qdev.c
+++ b/hw/core/qdev.c
@@ -32,8 +32,8 @@
#include "qapi/qmp/qerror.h"
#include "qapi/visitor.h"
#include "qapi/qmp/qjson.h"
-#include "monitor/monitor.h"
#include "hw/hotplug.h"
+#include "qapi-event.h"
int qdev_hotplug = 0;
static bool qdev_hot_added = false;
@@ -939,7 +939,6 @@ static void device_unparent(Object *obj)
{
DeviceState *dev = DEVICE(obj);
BusState *bus;
- QObject *event_data;
bool have_realized = dev->realized;
if (dev->realized) {
@@ -959,14 +958,7 @@ static void device_unparent(Object *obj)
if (have_realized) {
gchar *path = object_get_canonical_path(OBJECT(dev));
- if (dev->id) {
- event_data = qobject_from_jsonf("{ 'device': %s, 'path': %s }",
- dev->id, path);
- } else {
- event_data = qobject_from_jsonf("{ 'path': %s }", path);
- }
- monitor_protocol_event(QEVENT_DEVICE_DELETED, event_data);
- qobject_decref(event_data);
+ qapi_event_send_device_deleted(!!dev->id, dev->id, path, &error_abort);
g_free(path);
}
}
diff --git a/qapi-event.json b/qapi-event.json
index e7dbfab..c880d77 100644
--- a/qapi-event.json
+++ b/qapi-event.json
@@ -106,3 +106,19 @@
##
{ 'event': 'WATCHDOG',
'data': { 'action': 'WatchdogExpirationAction' } }
+
+##
+# @DEVICE_DELETED
+#
+# Emitted whenever the device removal completion is acknowledged by the guest.
+# At this point, it's safe to reuse the specified device ID. Device removal can
+# be initiated by the guest or by HMP/QMP commands.
+#
+# @device: #optional, device name
+#
+# @path: device path
+#
+# Since: 1.5
+##
+{ 'event': 'DEVICE_DELETED',
+ 'data': { '*device': 'str', 'path': 'str' } }
--
1.9.3
- [Qemu-devel] [PULL 10/40] qapi: adjust existing defines, (continued)
- [Qemu-devel] [PULL 10/40] qapi: adjust existing defines, Luiz Capitulino, 2014/06/19
- [Qemu-devel] [PULL 14/40] qapi event: convert POWERDOWN, Luiz Capitulino, 2014/06/19
- [Qemu-devel] [PULL 15/40] qapi event: convert RESET, Luiz Capitulino, 2014/06/19
- [Qemu-devel] [PULL 17/40] qapi event: convert RESUME, Luiz Capitulino, 2014/06/19
- [Qemu-devel] [PULL 13/40] qapi event: convert SHUTDOWN, Luiz Capitulino, 2014/06/19
- [Qemu-devel] [PULL 19/40] qapi event: convert SUSPEND_DISK, Luiz Capitulino, 2014/06/19
- [Qemu-devel] [PULL 20/40] qapi event: convert WAKEUP, Luiz Capitulino, 2014/06/19
- [Qemu-devel] [PULL 18/40] qapi event: convert SUSPEND, Luiz Capitulino, 2014/06/19
- [Qemu-devel] [PULL 21/40] qapi event: convert RTC_CHANGE, Luiz Capitulino, 2014/06/19
- [Qemu-devel] [PULL 16/40] qapi event: convert STOP, Luiz Capitulino, 2014/06/19
- [Qemu-devel] [PULL 23/40] qapi event: convert DEVICE_DELETED,
Luiz Capitulino <=
- [Qemu-devel] [PULL 22/40] qapi event: convert WATCHDOG, Luiz Capitulino, 2014/06/19
- [Qemu-devel] [PULL 24/40] qapi event: convert DEVICE_TRAY_MOVED, Luiz Capitulino, 2014/06/19
- [Qemu-devel] [PULL 25/40] qapi event: convert BLOCK_IO_ERROR and BLOCK_JOB_ERROR, Luiz Capitulino, 2014/06/19
- [Qemu-devel] [PULL 26/40] qapi event: convert BLOCK_IMAGE_CORRUPTED, Luiz Capitulino, 2014/06/19
- [Qemu-devel] [PULL 27/40] qapi event: convert other BLOCK_JOB events, Luiz Capitulino, 2014/06/19
- [Qemu-devel] [PULL 30/40] qapi event: convert SPICE events, Luiz Capitulino, 2014/06/19
- [Qemu-devel] [PULL 34/40] qapi event: clean up, Luiz Capitulino, 2014/06/19
- [Qemu-devel] [PULL 28/40] qapi event: convert NIC_RX_FILTER_CHANGED, Luiz Capitulino, 2014/06/19
- [Qemu-devel] [PULL 35/40] qemu-char: introduce qemu_chr_alloc, Luiz Capitulino, 2014/06/19
- [Qemu-devel] [PULL 29/40] qapi event: convert VNC events, Luiz Capitulino, 2014/06/19