Files
qemu/hw/display/virtio-vga-gl.c
Jose R. Ziviani c1c40509d2 modules: introduces module_kconfig directive
Git-commit: 0000000000000000000000000000000000000000
References: bsc#1199015

module_kconfig is a new directive that should be used with module_obj
whenever that module depends on the Kconfig to be enabled.

When the module is enabled in Kconfig we are sure that its dependencies
will be enabled as well, thus the module will be loaded without any
problem.

The correct way to use module_kconfig is by passing the Kconfig option
to module_kconfig (or the *config-devices.mak without CONFIG_).

Signed-off-by: Jose R. Ziviani <jziviani@suse.de>
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
2023-07-31 19:20:26 +02:00

52 lines
1.3 KiB
C

#include "qemu/osdep.h"
#include "hw/pci/pci.h"
#include "hw/qdev-properties.h"
#include "hw/virtio/virtio-gpu.h"
#include "hw/display/vga.h"
#include "qapi/error.h"
#include "qemu/module.h"
#include "virtio-vga.h"
#include "qom/object.h"
#define TYPE_VIRTIO_VGA_GL "virtio-vga-gl"
typedef struct VirtIOVGAGL VirtIOVGAGL;
DECLARE_INSTANCE_CHECKER(VirtIOVGAGL, VIRTIO_VGA_GL,
TYPE_VIRTIO_VGA_GL)
struct VirtIOVGAGL {
VirtIOVGABase parent_obj;
VirtIOGPUGL vdev;
};
static void virtio_vga_gl_inst_initfn(Object *obj)
{
VirtIOVGAGL *dev = VIRTIO_VGA_GL(obj);
virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
TYPE_VIRTIO_GPU_GL);
VIRTIO_VGA_BASE(dev)->vgpu = VIRTIO_GPU_BASE(&dev->vdev);
}
static VirtioPCIDeviceTypeInfo virtio_vga_gl_info = {
.generic_name = TYPE_VIRTIO_VGA_GL,
.parent = TYPE_VIRTIO_VGA_BASE,
.instance_size = sizeof(VirtIOVGAGL),
.instance_init = virtio_vga_gl_inst_initfn,
};
module_obj(TYPE_VIRTIO_VGA_GL);
module_kconfig(VIRTIO_VGA);
static void virtio_vga_register_types(void)
{
if (have_vga) {
virtio_pci_types_register(&virtio_vga_gl_info);
}
}
type_init(virtio_vga_register_types)
module_dep("hw-display-virtio-vga");