diff options
author | Igor Mammedov <imammedo@redhat.com> | 2017-10-09 21:50:49 +0200 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2017-10-17 10:34:00 +1100 |
commit | aa04c9d20704fa5b9ab239d5111adbcce5f49808 (patch) | |
tree | bd983fa1afd10a4716edc24dba86e303a6b6122e | |
parent | 2a129767ebb13ffc29dad6a8e8e6eec06dc38b25 (diff) | |
download | qemu-aa04c9d20704fa5b9ab239d5111adbcce5f49808.zip qemu-aa04c9d20704fa5b9ab239d5111adbcce5f49808.tar.gz qemu-aa04c9d20704fa5b9ab239d5111adbcce5f49808.tar.bz2 |
qom: introduce type_register_static_array()
it will help to remove code duplication of registration
static types in places that have open coded loop to
perform batch type registering.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
-rw-r--r-- | include/qom/object.h | 10 | ||||
-rw-r--r-- | qom/object.c | 9 |
2 files changed, 19 insertions, 0 deletions
diff --git a/include/qom/object.h b/include/qom/object.h index a707b67..9a2369c 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -789,6 +789,16 @@ Type type_register_static(const TypeInfo *info); Type type_register(const TypeInfo *info); /** + * type_register_static_array: + * @infos: The array of the new type #TypeInfo structures. + * @nr_infos: number of entries in @infos + * + * @infos and all of the strings it points to should exist for the life time + * that the type is registered. + */ +void type_register_static_array(const TypeInfo *infos, int nr_infos); + +/** * object_class_dynamic_cast_assert: * @klass: The #ObjectClass to attempt to cast. * @typename: The QOM typename of the class to cast to. diff --git a/qom/object.c b/qom/object.c index 6a7bd92..c58c52d 100644 --- a/qom/object.c +++ b/qom/object.c @@ -151,6 +151,15 @@ TypeImpl *type_register_static(const TypeInfo *info) return type_register(info); } +void type_register_static_array(const TypeInfo *infos, int nr_infos) +{ + int i; + + for (i = 0; i < nr_infos; i++) { + type_register_static(&infos[i]); + } +} + static TypeImpl *type_get_by_name(const char *name) { if (name == NULL) { |