]> git.proxmox.com Git - mirror_qemu.git/commit - vl.c
qom: add helpers for UserCreatable object types
authorDaniel P. Berrange <berrange@redhat.com>
Wed, 10 Feb 2016 18:40:59 +0000 (18:40 +0000)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 16 Feb 2016 16:12:57 +0000 (17:12 +0100)
commit90998d58964cd17f8b0b03800b0a4508f8b543da
tree45488ac4f4d5efaf6ce16436a6c980c5bf7d088c
parent73d60fa5fae60c8e07e1f295d8c7fd5d04320160
qom: add helpers for UserCreatable object types

The QMP monitor code has two helper methods object_add
and qmp_object_del that are called from several places
in the code (QMP, HMP and main emulator startup).

The HMP and main emulator startup code also share
further logic that extracts the qom-type & id
values from a qdict.

We soon need to use this logic from qemu-img, qemu-io
and qemu-nbd too, but don't want those to depend on
the monitor, nor do we want to duplicate the code.

To avoid this, move some code out of qmp.c and hmp.c
adding new methods to qom/object_interfaces.c

 - user_creatable_add - takes a QDict holding a full
   object definition & instantiates it
 - user_creatable_add_type - takes an ID, type name,
   and QDict holding object properties & instantiates
   it
 - user_creatable_add_opts - takes a QemuOpts holding
   a full object definition & instantiates it
 - user_creatable_add_opts_foreach - variant on
   user_creatable_add_opts which can be directly used
   in conjunction with qemu_opts_foreach.
 - user_creatable_del - takes an ID and deletes the
   corresponding object

The existing code is updated to use these new methods.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Message-Id: <1455129674-17255-2-git-send-email-berrange@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
hmp.c
include/monitor/monitor.h
include/qom/object_interfaces.h
qmp.c
qom/object_interfaces.c
vl.c