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