[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v1 0/4] -object/object-add add 2nd stage initializat
From: |
Igor Mammedov |
Subject: |
[Qemu-devel] [PATCH v1 0/4] -object/object-add add 2nd stage initialization |
Date: |
Thu, 16 Jan 2014 17:34:35 +0100 |
Adds UserCreatable interface that objects must inherit from
If they need to be created with help of -object/object-add
commands.
Interface also provides an optional complete() callback,
that is called after object properties are set. Which allows
* replace custom backend APIs to initialize them with generic
object_new(); set object properties; object.complete();
sequence.
* bail out/report error early (at backend creation time)
instead of failing later when adding device that uses
that backend.
Reference to RFC:
https://lists.gnu.org/archive/html/qemu-devel/2014-01/msg00877.html
Changes since RFC:
* rename object_realize interface to UserCreatable
* make UserCreatable interface mandatory for -object/object-add
* drop custom location patch
Git tree for testing:
https://github.com/imammedo/qemu/commits/extend-object-add-v1
Igor Mammedov (4):
object_add: consolidate error handling
vl.c: -object: don't ingnore duplicate 'id'
add optional 2nd stage initialization to -object/object-add commands
virtio_rng: replace custom backend API with UserCreatable.complete()
callback
backends/rng.c | 17 +++++++++-
hw/virtio/virtio-rng.c | 15 +++++----
include/qom/object_interfaces.h | 62 +++++++++++++++++++++++++++++++++++++++
include/sysemu/rng.h | 11 -------
qmp.c | 22 +++++++++++--
qom/Makefile.objs | 1 +
qom/object_interfaces.c | 32 ++++++++++++++++++++
vl.c | 22 +++++++++++++-
8 files changed, 158 insertions(+), 24 deletions(-)
create mode 100644 include/qom/object_interfaces.h
create mode 100644 qom/object_interfaces.c
- [Qemu-devel] [PATCH v1 0/4] -object/object-add add 2nd stage initialization,
Igor Mammedov <=
- [Qemu-devel] [PATCH v1 1/4] object_add: consolidate error handling, Igor Mammedov, 2014/01/16
- [Qemu-devel] [PATCH v1 3/4] add optional 2nd stage initialization to -object/object-add commands, Igor Mammedov, 2014/01/16
- [Qemu-devel] [PATCH v1 2/4] vl.c: -object: don't ingnore duplicate 'id', Igor Mammedov, 2014/01/16
- [Qemu-devel] [PATCH v1 4/4] virtio_rng: replace custom backend API with UserCreatable.complete() callback, Igor Mammedov, 2014/01/16
- Re: [Qemu-devel] [PATCH v1 0/4] -object/object-add add 2nd stage initialization, Stefan Hajnoczi, 2014/01/17
- Re: [Qemu-devel] [PATCH v1 0/4] -object/object-add add 2nd stage initialization, Luiz Capitulino, 2014/01/22