Il 08/01/2014 17:09, Igor Mammedov ha scritto: > Adds optional interfaces that objects could implement if > they need to: > 1. perform an additional initialization after object properties are set > 2. be placed not in '/objects' container > > Series depends on 2 PULL requests in flight from Andreas & Luiz > with fixes for QOM interfaces and object-add monitor/QMP command. > Git tree for testing: > https://github.com/imammedo/qemu/commits/extend-object-add > > Igor Mammedov (5): > object_add: consolidate error handling > add optional 2nd stage initialization to > -object/object-add/object_add commands > virtio_rng: use object_realize interface instead of calling backend > API > vl.c: -object: handle duplicate 'id' properly > -object/object-add: use custom default object location if provided > > backends/rng.c | 17 ++++++- > hw/virtio/virtio-rng.c | 15 ++++--- > include/qom/object_interfaces.h | 96 > +++++++++++++++++++++++++++++++++++++++ > include/sysemu/rng.h | 11 ----- > qmp.c | 30 +++++++++--- > qom/Makefile.objs | 1 + > qom/object_interfaces.c | 57 +++++++++++++++++++++++ > vl.c | 21 ++++++++- > 8 files changed, 220 insertions(+), 28 deletions(-) > create mode 100644 include/qom/object_interfaces.h > create mode 100644 qom/object_interfaces.c >
Thanks Igor! I like very much patches 1-4 (though I'm thinking that we need some style conventions for interfaces). I think patch 5 adds more complexity than we need, but I'm open to discussion. Paolo