mirror of
https://github.com/qemu/qemu.git
synced 2026-07-08 17:46:10 +00:00
qom/object: register OBJECT and INTERFACE QOM types before main
Those types are special, as they are the base of all other QOM types. In next commit, we'll introduce an extra step in module initialization for target-info-* types. However, those types depend on TYPE_OBJECT, which is only registered at MODULE_INIT_QOM step. To avoid having to introduce another step, and modify all code calling module_call_init(MODULE_INIT_QOM), we simply register those base types directly in the static constructor, before anything else. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Link: https://lore.kernel.org/qemu-devel/20260514172303.1484273-2-pierrick.bouvier@oss.qualcomm.com Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
This commit is contained in:
@@ -2844,7 +2844,7 @@ static void object_class_init(ObjectClass *klass, const void *data)
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void register_types(void)
|
||||
static void __attribute__((constructor)) register_types(void)
|
||||
{
|
||||
static const TypeInfo interface_info = {
|
||||
.name = TYPE_INTERFACE,
|
||||
@@ -2862,5 +2862,3 @@ static void register_types(void)
|
||||
type_interface = type_register_internal(&interface_info);
|
||||
type_register_internal(&object_info);
|
||||
}
|
||||
|
||||
type_init(register_types)
|
||||
|
||||
Reference in New Issue
Block a user