mirror of https://github.com/xemu-project/xemu.git
hw/xen: Register framebuffer backend via xen_backend_init()
Align the framebuffer backend with the other legacy ones, register it via xen_backend_init() when '-vga xenfb' is used. It is safe because MODULE_INIT_XEN_BACKEND is called in xen_bus_realize(), long after CLI processing initialized the vga_interface_type variable. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Paul Durrant <paul@xen.org> Message-Id: <20240510104908.76908-8-philmd@linaro.org>
This commit is contained in:
parent
d76795ea3d
commit
6ece1df966
|
@ -29,6 +29,7 @@
|
||||||
|
|
||||||
#include "ui/input.h"
|
#include "ui/input.h"
|
||||||
#include "ui/console.h"
|
#include "ui/console.h"
|
||||||
|
#include "sysemu/sysemu.h"
|
||||||
#include "hw/xen/xen-legacy-backend.h"
|
#include "hw/xen/xen-legacy-backend.h"
|
||||||
|
|
||||||
#include "hw/xen/interface/io/fbif.h"
|
#include "hw/xen/interface/io/fbif.h"
|
||||||
|
@ -996,8 +997,12 @@ static const GraphicHwOps xenfb_ops = {
|
||||||
.ui_info = xenfb_ui_info,
|
.ui_info = xenfb_ui_info,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void xen_vkbd_register_backend(void)
|
static void xen_ui_register_backend(void)
|
||||||
{
|
{
|
||||||
xen_be_register("vkbd", &xen_kbdmouse_ops);
|
xen_be_register("vkbd", &xen_kbdmouse_ops);
|
||||||
|
|
||||||
|
if (vga_interface_type == VGA_XENFB) {
|
||||||
|
xen_be_register("vfb", &xen_framebuffer_ops);
|
||||||
}
|
}
|
||||||
xen_backend_init(xen_vkbd_register_backend);
|
}
|
||||||
|
xen_backend_init(xen_ui_register_backend);
|
||||||
|
|
|
@ -50,8 +50,6 @@ static void xen_init_pv(MachineState *machine)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
xen_be_register("vfb", &xen_framebuffer_ops);
|
|
||||||
|
|
||||||
/* configure framebuffer */
|
/* configure framebuffer */
|
||||||
if (vga_interface_type == VGA_XENFB) {
|
if (vga_interface_type == VGA_XENFB) {
|
||||||
xen_config_dev_vfb(0, "vnc");
|
xen_config_dev_vfb(0, "vnc");
|
||||||
|
|
|
@ -66,9 +66,6 @@ static inline void xen_be_unmap_grant_ref(struct XenLegacyDevice *xendev,
|
||||||
return xen_be_unmap_grant_refs(xendev, ptr, &ref, 1);
|
return xen_be_unmap_grant_refs(xendev, ptr, &ref, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* backend drivers not included in all machines */
|
|
||||||
extern const struct XenDevOps xen_framebuffer_ops; /* xenfb.c */
|
|
||||||
|
|
||||||
/* configuration (aka xenbus setup) */
|
/* configuration (aka xenbus setup) */
|
||||||
void xen_config_cleanup(void);
|
void xen_config_cleanup(void);
|
||||||
int xen_config_dev_vfb(int vdev, const char *type);
|
int xen_config_dev_vfb(int vdev, const char *type);
|
||||||
|
|
Loading…
Reference in New Issue