Message ID | 1322857256-14951-14-git-send-email-aliguori@us.ibm.com |
---|---|
State | New |
Headers | show |
Am 02.12.2011 21:20, schrieb Anthony Liguori: > Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> > --- > hw/qdev.c | 21 ++++++++++++++++++++- > 1 files changed, 20 insertions(+), 1 deletions(-) > > diff --git a/hw/qdev.c b/hw/qdev.c > index af4c6a2..5348f26 100644 > --- a/hw/qdev.c > +++ b/hw/qdev.c > @@ -240,6 +240,19 @@ static DeviceState *qdev_get_peripheral(void) > return dev; > } > > +static DeviceState *qdev_get_peripheral_anon(void) > +{ > + static DeviceState *dev; > + > + if (dev == NULL) { > + dev = qdev_create(NULL, "container"); > + qdev_property_add_child(qdev_get_root(), "peripheral-anon", dev, NULL); > + qdev_init_nofail(dev); > + } > + > + return dev; > +} > + > DeviceState *qdev_device_add(QemuOpts *opts) > { > const char *driver, *path, *id; > @@ -292,7 +305,13 @@ DeviceState *qdev_device_add(QemuOpts *opts) > if (id) { > qdev->id = id; > qdev_property_add_child(qdev_get_peripheral(), qdev->id, qdev, NULL); > - } > + } else { > + static int anon_count; > + gchar *name = g_strdup_printf("device[%d]", anon_count++); Does any code depend on this name? If not, I would suggest making it a bit more convenient for users: g_strdump_printf("%s[%d]", info->name, info->anon_count++) Kevin
On 12/08/2011 10:27 AM, Kevin Wolf wrote: > Am 02.12.2011 21:20, schrieb Anthony Liguori: >> Signed-off-by: Anthony Liguori<aliguori@us.ibm.com> >> --- >> hw/qdev.c | 21 ++++++++++++++++++++- >> 1 files changed, 20 insertions(+), 1 deletions(-) >> >> diff --git a/hw/qdev.c b/hw/qdev.c >> index af4c6a2..5348f26 100644 >> --- a/hw/qdev.c >> +++ b/hw/qdev.c >> @@ -240,6 +240,19 @@ static DeviceState *qdev_get_peripheral(void) >> return dev; >> } >> >> +static DeviceState *qdev_get_peripheral_anon(void) >> +{ >> + static DeviceState *dev; >> + >> + if (dev == NULL) { >> + dev = qdev_create(NULL, "container"); >> + qdev_property_add_child(qdev_get_root(), "peripheral-anon", dev, NULL); >> + qdev_init_nofail(dev); >> + } >> + >> + return dev; >> +} >> + >> DeviceState *qdev_device_add(QemuOpts *opts) >> { >> const char *driver, *path, *id; >> @@ -292,7 +305,13 @@ DeviceState *qdev_device_add(QemuOpts *opts) >> if (id) { >> qdev->id = id; >> qdev_property_add_child(qdev_get_peripheral(), qdev->id, qdev, NULL); >> - } >> + } else { >> + static int anon_count; >> + gchar *name = g_strdup_printf("device[%d]", anon_count++); > > Does any code depend on this name? If not, I would suggest making it a > bit more convenient for users: g_strdump_printf("%s[%d]", info->name, > info->anon_count++) Nothing does and that's a great suggestion, thanks! Regards, Anthony Liguori > > Kevin >
diff --git a/hw/qdev.c b/hw/qdev.c index af4c6a2..5348f26 100644 --- a/hw/qdev.c +++ b/hw/qdev.c @@ -240,6 +240,19 @@ static DeviceState *qdev_get_peripheral(void) return dev; } +static DeviceState *qdev_get_peripheral_anon(void) +{ + static DeviceState *dev; + + if (dev == NULL) { + dev = qdev_create(NULL, "container"); + qdev_property_add_child(qdev_get_root(), "peripheral-anon", dev, NULL); + qdev_init_nofail(dev); + } + + return dev; +} + DeviceState *qdev_device_add(QemuOpts *opts) { const char *driver, *path, *id; @@ -292,7 +305,13 @@ DeviceState *qdev_device_add(QemuOpts *opts) if (id) { qdev->id = id; qdev_property_add_child(qdev_get_peripheral(), qdev->id, qdev, NULL); - } + } else { + static int anon_count; + gchar *name = g_strdup_printf("device[%d]", anon_count++); + qdev_property_add_child(qdev_get_peripheral_anon(), name, + qdev, NULL); + g_free(name); + } if (qemu_opt_foreach(opts, set_property, qdev, 1) != 0) { qdev_free(qdev); return NULL;
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> --- hw/qdev.c | 21 ++++++++++++++++++++- 1 files changed, 20 insertions(+), 1 deletions(-)