From: Luiz Capitulino <lcapitulino@redhat.com>
To: peter.maydell@linaro.org
Cc: qemu-devel@nongnu.org, anthony@codemonkey.ws
Subject: [Qemu-devel] [PULL 23/40] qapi event: convert DEVICE_DELETED
Date: Thu, 19 Jun 2014 15:39:35 -0400 [thread overview]
Message-ID: <1403206792-15387-24-git-send-email-lcapitulino@redhat.com> (raw)
In-Reply-To: <1403206792-15387-1-git-send-email-lcapitulino@redhat.com>
From: Wenchao Xia <wenchaoqemu@gmail.com>
Signed-off-by: Wenchao Xia <wenchaoqemu@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
---
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
next prev parent reply other threads:[~2014-06-19 19:40 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-19 19:39 [Qemu-devel] [PULL for-2.1 00/40] QMP queue Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 01/40] qapi: fix coding style in parameters list Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 02/40] qapi: add const prefix to 'char *' insider c_type() Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 03/40] qapi: Suppress unwanted space between type and identifier Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 04/40] json-lexer: fix escaped backslash in single-quoted string Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 05/40] os-posix: include sys/time.h Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 06/40] qapi: Add includes from qapi/ as dependencies Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 07/40] qapi: add event helper functions Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 08/40] qapi script: add event support Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 09/40] test: add test cases for qapi event Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 10/40] qapi: adjust existing defines Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 11/40] monitor: add an implemention of qapi event emit method Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 12/40] qapi: add new schema file qapi-event.json Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 13/40] qapi event: convert SHUTDOWN Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 14/40] qapi event: convert POWERDOWN Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 15/40] qapi event: convert RESET Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 16/40] qapi event: convert STOP Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 17/40] qapi event: convert RESUME Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 18/40] qapi event: convert SUSPEND Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 19/40] qapi event: convert SUSPEND_DISK Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 20/40] qapi event: convert WAKEUP Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 21/40] qapi event: convert RTC_CHANGE Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 22/40] qapi event: convert WATCHDOG Luiz Capitulino
2014-06-19 19:39 ` Luiz Capitulino [this message]
2014-06-19 19:39 ` [Qemu-devel] [PULL 24/40] qapi event: convert DEVICE_TRAY_MOVED Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 25/40] qapi event: convert BLOCK_IO_ERROR and BLOCK_JOB_ERROR Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 26/40] qapi event: convert BLOCK_IMAGE_CORRUPTED Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 27/40] qapi event: convert other BLOCK_JOB events Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 28/40] qapi event: convert NIC_RX_FILTER_CHANGED Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 29/40] qapi event: convert VNC events Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 30/40] qapi event: convert SPICE events Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 31/40] qapi event: convert BALLOON_CHANGE Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 32/40] qapi event: convert GUEST_PANICKED Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 33/40] qapi event: convert QUORUM events Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 34/40] qapi event: clean up Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 35/40] qemu-char: introduce qemu_chr_alloc Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 36/40] qemu-char: do not call chr_write directly Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 37/40] qemu-char: move pty_chr_update_read_handler around Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 38/40] qemu-char: make writes thread-safe Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 39/40] monitor: protect outbuf and mux_out with mutex Luiz Capitulino
2014-06-19 19:39 ` [Qemu-devel] [PULL 40/40] monitor: protect event emission Luiz Capitulino
2014-06-20 18:24 ` [Qemu-devel] [PULL for-2.1 00/40] QMP queue Peter Maydell
2014-06-20 18:44 ` Luiz Capitulino
2014-06-20 19:17 ` Paolo Bonzini
2014-06-20 19:49 ` Paolo Bonzini
2014-06-20 20:02 ` Eric Blake
2014-06-24 13:08 ` Wenchao Xia
2014-06-24 13:20 ` Eric Blake
2014-06-24 13:24 ` Peter Maydell
2014-06-24 14:52 ` Wenchao Xia
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1403206792-15387-24-git-send-email-lcapitulino@redhat.com \
--to=lcapitulino@redhat.com \
--cc=anthony@codemonkey.ws \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).