Message ID | 1327957741-5842-22-git-send-email-aliguori@us.ibm.com |
---|---|
State | New |
Headers | show |
On 01/30/2012 10:09 PM, Anthony Liguori wrote: > diff --git a/qom/container.c b/qom/container.c > new file mode 100644 > index 0000000..39d7b1e > --- /dev/null > +++ b/qom/container.c > @@ -0,0 +1,15 @@ > +#include "qemu/object.h" > +#include "module.h" > + > +static TypeInfo container_info = { > + .name = "container", > + .instance_size = sizeof(Object), > + .parent = TYPE_OBJECT, > +}; > + License header, please. (GPLv2+ or LGPLv2+?) Paolo
Am 31.01.2012 08:50, schrieb Paolo Bonzini: > On 01/30/2012 10:09 PM, Anthony Liguori wrote: >> diff --git a/qom/container.c b/qom/container.c >> new file mode 100644 >> index 0000000..39d7b1e >> --- /dev/null >> +++ b/qom/container.c >> @@ -0,0 +1,15 @@ >> +#include "qemu/object.h" >> +#include "module.h" >> + >> +static TypeInfo container_info = { >> + .name = "container", >> + .instance_size = sizeof(Object), >> + .parent = TYPE_OBJECT, >> +}; >> + > > License header, please. (GPLv2+ or LGPLv2+?) Given that object.c is GPLv2+, I've sticked with that license myself; but was that choice of license intentional? Effectively means we can't really have any liberally-licensed device emulation. (But same holds for MemoryAPI.) Andreas
On 01/31/2012 10:21 AM, Andreas Färber wrote: >> > >> > License header, please. (GPLv2+ or LGPLv2+?) > Given that object.c is GPLv2+, I've sticked with that license myself; > but was that choice of license intentional? Effectively means we can't > really have any liberally-licensed device emulation. (But same holds for > MemoryAPI.) Actually you can. It's the combination that cannot be released liberally, but that's already the case without QOM or MemoryRegion. If somebody wishes to port such a module to a proprietary platform (which doesn't have QOM or other GPL bits), they can. Paolo
On 30 January 2012 21:09, Anthony Liguori <aliguori@us.ibm.com> wrote:
> Subject: [PATCH 22/23] container: make a decendent of Object
"descendant".
-- PMM
diff --git a/Makefile.objs b/Makefile.objs index 1a26349..ec35320 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -286,7 +286,7 @@ hw-obj-$(CONFIG_LSI_SCSI_PCI) += lsi53c895a.o hw-obj-$(CONFIG_ESP) += esp.o hw-obj-y += dma-helpers.o sysbus.o isa-bus.o -hw-obj-y += qdev-addr.o container.o +hw-obj-y += qdev-addr.o # VGA hw-obj-$(CONFIG_VGA_PCI) += vga-pci.o diff --git a/hw/container.c b/hw/container.c deleted file mode 100644 index 1e97031..0000000 --- a/hw/container.c +++ /dev/null @@ -1,29 +0,0 @@ -#include "sysbus.h" - -static int container_initfn(SysBusDevice *dev) -{ - return 0; -} - -static void container_class_init(ObjectClass *klass, void *data) -{ - DeviceClass *dc = DEVICE_CLASS(klass); - SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass); - - k->init = container_initfn; - dc->no_user = 1; -} - -static TypeInfo container_info = { - .name = "container", - .parent = TYPE_SYS_BUS_DEVICE, - .instance_size = sizeof(SysBusDevice), - .class_init = container_class_init, -}; - -static void container_init(void) -{ - type_register_static(&container_info); -} - -device_init(container_init); diff --git a/hw/qdev-monitor.c b/hw/qdev-monitor.c index 66a6d55..b8d8a9e 100644 --- a/hw/qdev-monitor.c +++ b/hw/qdev-monitor.c @@ -179,30 +179,28 @@ int qdev_device_help(QemuOpts *opts) static Object *qdev_get_peripheral(void) { - static DeviceState *dev; + static Object *dev; if (dev == NULL) { - dev = qdev_create(NULL, "container"); + dev = object_new("container"); object_property_add_child(object_get_root(), "peripheral", OBJECT(dev), NULL); - qdev_init_nofail(dev); } - return OBJECT(dev); + return dev; } static Object *qdev_get_peripheral_anon(void) { - static DeviceState *dev; + static Object *dev; if (dev == NULL) { - dev = qdev_create(NULL, "container"); + dev = object_new("container"); object_property_add_child(object_get_root(), "peripheral-anon", OBJECT(dev), NULL); - qdev_init_nofail(dev); } - return OBJECT(dev); + return dev; } static void qbus_list_bus(DeviceState *dev) diff --git a/qom/Makefile b/qom/Makefile index a3c7892..f33f0be 100644 --- a/qom/Makefile +++ b/qom/Makefile @@ -1 +1 @@ -qom-y = object.o +qom-y = object.o container.o diff --git a/qom/container.c b/qom/container.c new file mode 100644 index 0000000..39d7b1e --- /dev/null +++ b/qom/container.c @@ -0,0 +1,15 @@ +#include "qemu/object.h" +#include "module.h" + +static TypeInfo container_info = { + .name = "container", + .instance_size = sizeof(Object), + .parent = TYPE_OBJECT, +}; + +static void container_init(void) +{ + type_register_static(&container_info); +} + +device_init(container_init); diff --git a/qom/object.c b/qom/object.c index 1941adb..3c3c8f9 100644 --- a/qom/object.c +++ b/qom/object.c @@ -655,14 +655,13 @@ const char *object_property_get_type(Object *obj, const char *name, Error **errp Object *object_get_root(void) { - static DeviceState *object_root; + static Object *root; - if (!object_root) { - object_root = qdev_create(NULL, "container"); - qdev_init_nofail(object_root); + if (!root) { + root = object_new("container"); } - return OBJECT(object_root); + return root; } static void object_get_child_property(Object *obj, Visitor *v, void *opaque,
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> --- Makefile.objs | 2 +- hw/container.c | 29 ----------------------------- hw/qdev-monitor.c | 14 ++++++-------- qom/Makefile | 2 +- qom/container.c | 15 +++++++++++++++ qom/object.c | 9 ++++----- 6 files changed, 27 insertions(+), 44 deletions(-) delete mode 100644 hw/container.c create mode 100644 qom/container.c