@@ -53,6 +53,7 @@ typedef enum {
#define trace_init(function) module_init(function, MODULE_INIT_TRACE)
#define block_module_load_one(lib) module_load_one("block-", lib)
+#define ui_module_load_one(lib) module_load_one("ui-", lib)
void register_module_init(void (*fn)(void), module_init_type type);
void register_dso_module_init(void (*fn)(void), module_init_type type);
@@ -2187,6 +2187,9 @@ bool qemu_display_find_default(DisplayOptions *opts)
for (i = 0; i < ARRAY_SIZE(prio); i++) {
if (dpys[prio[i]] == NULL) {
+ ui_module_load_one(DisplayType_lookup.array[prio[i]]);
+ }
+ if (dpys[prio[i]] == NULL) {
continue;
}
opts->type = prio[i];
@@ -2202,6 +2205,9 @@ void qemu_display_early_init(DisplayOptions *opts)
return;
}
if (dpys[opts->type] == NULL) {
+ ui_module_load_one(DisplayType_lookup.array[opts->type]);
+ }
+ if (dpys[opts->type] == NULL) {
error_report("Display '%s' is not available.",
DisplayType_lookup.array[opts->type]);
exit(1);
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- include/qemu/module.h | 1 + ui/console.c | 6 ++++++ 2 files changed, 7 insertions(+)