1fe2611b0SMarkus Armbruster #ifndef VIRTIO_VGA_H 2fe2611b0SMarkus Armbruster #define VIRTIO_VGA_H 3c68082c4SMarc-André Lureau 4267f6646SMarc-André Lureau #include "hw/virtio/virtio-gpu-pci.h" 5c68082c4SMarc-André Lureau #include "vga_int.h" 6*db1015e9SEduardo Habkost #include "qom/object.h" 7c68082c4SMarc-André Lureau 8c68082c4SMarc-André Lureau /* 9c68082c4SMarc-André Lureau * virtio-vga-base: This extends VirtioPCIProxy. 10c68082c4SMarc-André Lureau */ 11c68082c4SMarc-André Lureau #define TYPE_VIRTIO_VGA_BASE "virtio-vga-base" 12*db1015e9SEduardo Habkost typedef struct VirtIOVGABase VirtIOVGABase; 13*db1015e9SEduardo Habkost typedef struct VirtIOVGABaseClass VirtIOVGABaseClass; 14c68082c4SMarc-André Lureau #define VIRTIO_VGA_BASE(obj) \ 15c68082c4SMarc-André Lureau OBJECT_CHECK(VirtIOVGABase, (obj), TYPE_VIRTIO_VGA_BASE) 16c68082c4SMarc-André Lureau #define VIRTIO_VGA_BASE_GET_CLASS(obj) \ 17c68082c4SMarc-André Lureau OBJECT_GET_CLASS(VirtIOVGABaseClass, obj, TYPE_VIRTIO_VGA_BASE) 18c68082c4SMarc-André Lureau #define VIRTIO_VGA_BASE_CLASS(klass) \ 19c68082c4SMarc-André Lureau OBJECT_CLASS_CHECK(VirtIOVGABaseClass, klass, TYPE_VIRTIO_VGA_BASE) 20c68082c4SMarc-André Lureau 21*db1015e9SEduardo Habkost struct VirtIOVGABase { 22c68082c4SMarc-André Lureau VirtIOPCIProxy parent_obj; 23c68082c4SMarc-André Lureau 24c68082c4SMarc-André Lureau VirtIOGPUBase *vgpu; 25c68082c4SMarc-André Lureau VGACommonState vga; 26c68082c4SMarc-André Lureau MemoryRegion vga_mrs[3]; 27*db1015e9SEduardo Habkost }; 28c68082c4SMarc-André Lureau 29*db1015e9SEduardo Habkost struct VirtIOVGABaseClass { 30c68082c4SMarc-André Lureau VirtioPCIClass parent_class; 31c68082c4SMarc-André Lureau 32c68082c4SMarc-André Lureau DeviceReset parent_reset; 33*db1015e9SEduardo Habkost }; 34c68082c4SMarc-André Lureau 35fe2611b0SMarkus Armbruster #endif /* VIRTIO_VGA_H */ 36