virtio-ramfb-gl.c 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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-ramfb.h"
  9. #include "qom/object.h"
  10. #define TYPE_VIRTIO_RAMFB_GL "virtio-ramfb-gl"
  11. typedef struct VirtIORAMFBGL VirtIORAMFBGL;
  12. DECLARE_INSTANCE_CHECKER(VirtIORAMFBGL, VIRTIO_RAMFB_GL,
  13. TYPE_VIRTIO_RAMFB_GL)
  14. struct VirtIORAMFBGL {
  15. VirtIORAMFBBase parent_obj;
  16. VirtIOGPUGL vdev;
  17. };
  18. static void virtio_ramfb_gl_inst_initfn(Object *obj)
  19. {
  20. VirtIORAMFBGL *dev = VIRTIO_RAMFB_GL(obj);
  21. virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
  22. TYPE_VIRTIO_GPU_GL);
  23. VIRTIO_RAMFB_BASE(dev)->vgpu = VIRTIO_GPU_BASE(&dev->vdev);
  24. }
  25. static VirtioPCIDeviceTypeInfo virtio_ramfb_gl_info = {
  26. .generic_name = TYPE_VIRTIO_RAMFB_GL,
  27. .parent = TYPE_VIRTIO_RAMFB_BASE,
  28. .instance_size = sizeof(VirtIORAMFBGL),
  29. .instance_init = virtio_ramfb_gl_inst_initfn,
  30. };
  31. module_obj(TYPE_VIRTIO_RAMFB_GL);
  32. static void virtio_ramfb_register_types(void)
  33. {
  34. if (have_vga) {
  35. virtio_pci_types_register(&virtio_ramfb_gl_info);
  36. }
  37. }
  38. type_init(virtio_ramfb_register_types)
  39. module_dep("hw-display-virtio-ramfb");