virtio-vga-gl.c 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include "qemu/osdep.h"
  2. #include "hw/pci/pci.h"
  3. #include "hw/qdev-properties.h"
  4. #include "hw/virtio/virtio-gpu.h"
  5. #include "hw/display/vga.h"
  6. #include "qapi/error.h"
  7. #include "qemu/module.h"
  8. #include "virtio-vga.h"
  9. #include "qom/object.h"
  10. #define TYPE_VIRTIO_VGA_GL "virtio-vga-gl"
  11. typedef struct VirtIOVGAGL VirtIOVGAGL;
  12. DECLARE_INSTANCE_CHECKER(VirtIOVGAGL, VIRTIO_VGA_GL,
  13. TYPE_VIRTIO_VGA_GL)
  14. struct VirtIOVGAGL {
  15. VirtIOVGABase parent_obj;
  16. VirtIOGPUGL vdev;
  17. };
  18. static void virtio_vga_gl_inst_initfn(Object *obj)
  19. {
  20. VirtIOVGAGL *dev = VIRTIO_VGA_GL(obj);
  21. virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
  22. TYPE_VIRTIO_GPU_GL);
  23. VIRTIO_VGA_BASE(dev)->vgpu = VIRTIO_GPU_BASE(&dev->vdev);
  24. }
  25. static VirtioPCIDeviceTypeInfo virtio_vga_gl_info = {
  26. .generic_name = TYPE_VIRTIO_VGA_GL,
  27. .parent = TYPE_VIRTIO_VGA_BASE,
  28. .instance_size = sizeof(VirtIOVGAGL),
  29. .instance_init = virtio_vga_gl_inst_initfn,
  30. };
  31. module_obj(TYPE_VIRTIO_VGA_GL);
  32. module_kconfig(VIRTIO_VGA);
  33. static void virtio_vga_register_types(void)
  34. {
  35. if (have_vga) {
  36. virtio_pci_types_register(&virtio_vga_gl_info);
  37. }
  38. }
  39. type_init(virtio_vga_register_types)
  40. module_dep("hw-display-virtio-vga");