• D
    qom: add helpers for UserCreatable object types · 90998d58
    Daniel P. Berrange 提交于
    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: NDaniel P. Berrange <berrange@redhat.com>
    Message-Id: <1455129674-17255-2-git-send-email-berrange@redhat.com>
    Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
    90998d58
object_interfaces.h 5.5 KB