aboutsummaryrefslogtreecommitdiff
path: root/qmp.c
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2013-12-20 23:21:09 +0100
committerLuiz Capitulino <lcapitulino@redhat.com>2014-01-06 13:45:47 -0500
commitab2d0531b2e41bc5fd8f8e59405f135986599476 (patch)
treef40c89a272948494054e57f8096253a5f50a0bd4 /qmp.c
parentb0ed5e9feaf0e2881330a48c692f62e1ac6d9052 (diff)
downloadqemu-arm-ab2d0531b2e41bc5fd8f8e59405f135986599476.tar.gz
monitor: add object-del (QMP) and object_del (HMP) command
These two commands invoke the "unparent" method of Object. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> Tested-by: Igor Mammedov <imammedo@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Diffstat (limited to 'qmp.c')
-rw-r--r--qmp.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/qmp.c b/qmp.c
index 1d7a04d7a0..73aab5876c 100644
--- a/qmp.c
+++ b/qmp.c
@@ -529,3 +529,17 @@ void qmp_add_client(const char *protocol, const char *fdname,
error_setg(errp, "protocol '%s' is invalid", protocol);
close(fd);
}
+
+void qmp_object_del(const char *id, Error **errp)
+{
+ Object *container;
+ Object *obj;
+
+ container = container_get(object_get_root(), "/objects");
+ obj = object_resolve_path_component(container, id);
+ if (!obj) {
+ error_setg(errp, "object id not found");
+ return;
+ }
+ object_unparent(obj);
+}