提交 8d76bfe8 编写于 作者: E Eduardo Habkost

qdev: Eliminate qemu_add_globals() function

The function is just a helper to handle the -global options, it
can stay in vl.c like most qemu_opts_foreach() calls.
Reviewed-by: NIgor Mammedov <imammedo@redhat.com>
Reviewed-by: NMarkus Armbruster <armbru@redhat.com>
Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
上级 823efc5d
/* /*
* qdev property parsing and global properties * qdev property parsing
* (parts specific for qemu-system-*) * (parts specific for qemu-system-*)
* *
* This file is based on code from hw/qdev-properties.c from * 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) ...@@ -394,22 +394,3 @@ void qdev_set_nic_properties(DeviceState *dev, NICInfo *nd)
} }
nd->instantiated = 1; 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);
}
...@@ -12,7 +12,6 @@ void qemu_add_opts(QemuOptsList *list); ...@@ -12,7 +12,6 @@ void qemu_add_opts(QemuOptsList *list);
void qemu_add_drive_opts(QemuOptsList *list); void qemu_add_drive_opts(QemuOptsList *list);
int qemu_set_option(const char *str); int qemu_set_option(const char *str);
int qemu_global_option(const char *str); int qemu_global_option(const char *str);
void qemu_add_globals(void);
void qemu_config_write(FILE *fp); void qemu_config_write(FILE *fp);
int qemu_config_parse(FILE *fp, QemuOptsList **lists, const char *fname); int qemu_config_parse(FILE *fp, QemuOptsList **lists, const char *fname);
......
...@@ -2913,6 +2913,19 @@ static void set_memory_options(uint64_t *ram_slots, ram_addr_t *maxram_size, ...@@ -2913,6 +2913,19 @@ static void set_memory_options(uint64_t *ram_slots, ram_addr_t *maxram_size,
loc_pop(&loc); 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 main(int argc, char **argv, char **envp)
{ {
int i; int i;
...@@ -4442,7 +4455,8 @@ int main(int argc, char **argv, char **envp) ...@@ -4442,7 +4455,8 @@ int main(int argc, char **argv, char **envp)
qdev_prop_register_global(p); 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 /* This checkpoint is required by replay to separate prior clock
reading from the other reads, because timer polling functions query reading from the other reads, because timer polling functions query
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册