On Wed, 15 Jun 2016 17:32:45 -0300 Eduardo Habkost <ehabk...@redhat.com> wrote:
> The function is just a helper to handle the -global options, it > can stay in vl.c like most qemu_opts_foreach() calls. > > Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> Reviewed-by: Igor Mammedov <imamm...@redhat.com> > --- > hw/core/qdev-properties-system.c | 21 +-------------------- > include/qemu/config-file.h | 1 - > vl.c | 16 +++++++++++++++- > 3 files changed, 16 insertions(+), 22 deletions(-) > > diff --git a/hw/core/qdev-properties-system.c > b/hw/core/qdev-properties-system.c index 891219a..cf7139d 100644 > --- a/hw/core/qdev-properties-system.c > +++ b/hw/core/qdev-properties-system.c > @@ -1,5 +1,5 @@ > /* > - * qdev property parsing and global properties > + * qdev property parsing > * (parts specific for qemu-system-*) > * > * This file is based on code from hw/qdev-properties.c from > @@ -394,22 +394,3 @@ void qdev_set_nic_properties(DeviceState *dev, > NICInfo *nd) } > nd->instantiated = 1; > } > - > -static int qdev_add_one_global(void *opaque, QemuOpts *opts, Error > **errp) -{ > - GlobalProperty *g; > - > - g = g_malloc0(sizeof(*g)); > - g->driver = qemu_opt_get(opts, "driver"); > - g->property = qemu_opt_get(opts, "property"); > - g->value = qemu_opt_get(opts, "value"); > - g->user_provided = true; > - qdev_prop_register_global(g); > - return 0; > -} > - > -void qemu_add_globals(void) > -{ > - qemu_opts_foreach(qemu_find_opts("global"), > - qdev_add_one_global, NULL, NULL); > -} > diff --git a/include/qemu/config-file.h b/include/qemu/config-file.h > index 3b8ecb0..8603e86 100644 > --- a/include/qemu/config-file.h > +++ b/include/qemu/config-file.h > @@ -12,7 +12,6 @@ void qemu_add_opts(QemuOptsList *list); > void qemu_add_drive_opts(QemuOptsList *list); > int qemu_set_option(const char *str); > int qemu_global_option(const char *str); > -void qemu_add_globals(void); > > void qemu_config_write(FILE *fp); > int qemu_config_parse(FILE *fp, QemuOptsList **lists, const char > *fname); diff --git a/vl.c b/vl.c > index 45eff56..d2d756a 100644 > --- a/vl.c > +++ b/vl.c > @@ -2932,6 +2932,19 @@ static void set_memory_options(uint64_t > *ram_slots, ram_addr_t *maxram_size, loc_pop(&loc); > } > > +static int global_init_func(void *opaque, QemuOpts *opts, Error > **errp) +{ > + GlobalProperty *g; > + > + g = g_malloc0(sizeof(*g)); > + g->driver = qemu_opt_get(opts, "driver"); > + g->property = qemu_opt_get(opts, "property"); > + g->value = qemu_opt_get(opts, "value"); > + g->user_provided = true; > + qdev_prop_register_global(g); > + return 0; > +} > + > int main(int argc, char **argv, char **envp) > { > int i; > @@ -4466,7 +4479,8 @@ int main(int argc, char **argv, char **envp) > qdev_prop_register_global(p); > } > } > - qemu_add_globals(); > + qemu_opts_foreach(qemu_find_opts("global"), > + global_init_func, NULL, NULL); > > /* This checkpoint is required by replay to separate prior clock > reading from the other reads, because timer polling functions > query