1*17cdac0bSGerd Hoffmann /* 2*17cdac0bSGerd Hoffmann * Virtio video device 3*17cdac0bSGerd Hoffmann * 4*17cdac0bSGerd Hoffmann * Copyright Red Hat 5*17cdac0bSGerd Hoffmann * 6*17cdac0bSGerd Hoffmann * Authors: 7*17cdac0bSGerd Hoffmann * Dave Airlie 8*17cdac0bSGerd Hoffmann * 9*17cdac0bSGerd Hoffmann * This work is licensed under the terms of the GNU GPL, version 2 or later. 10*17cdac0bSGerd Hoffmann * See the COPYING file in the top-level directory. 11*17cdac0bSGerd Hoffmann * 12*17cdac0bSGerd Hoffmann */ 13*17cdac0bSGerd Hoffmann 14*17cdac0bSGerd Hoffmann #include "qemu/osdep.h" 15*17cdac0bSGerd Hoffmann #include "qapi/error.h" 16*17cdac0bSGerd Hoffmann #include "qemu/module.h" 17*17cdac0bSGerd Hoffmann #include "hw/pci/pci.h" 18*17cdac0bSGerd Hoffmann #include "hw/qdev-properties.h" 19*17cdac0bSGerd Hoffmann #include "hw/virtio/virtio.h" 20*17cdac0bSGerd Hoffmann #include "hw/virtio/virtio-bus.h" 21*17cdac0bSGerd Hoffmann #include "hw/virtio/virtio-gpu-pci.h" 22*17cdac0bSGerd Hoffmann #include "qom/object.h" 23*17cdac0bSGerd Hoffmann 24*17cdac0bSGerd Hoffmann #define TYPE_VIRTIO_GPU_GL_PCI "virtio-gpu-gl-pci" 25*17cdac0bSGerd Hoffmann typedef struct VirtIOGPUGLPCI VirtIOGPUGLPCI; 26*17cdac0bSGerd Hoffmann DECLARE_INSTANCE_CHECKER(VirtIOGPUGLPCI, VIRTIO_GPU_GL_PCI, 27*17cdac0bSGerd Hoffmann TYPE_VIRTIO_GPU_GL_PCI) 28*17cdac0bSGerd Hoffmann 29*17cdac0bSGerd Hoffmann struct VirtIOGPUGLPCI { 30*17cdac0bSGerd Hoffmann VirtIOGPUPCIBase parent_obj; 31*17cdac0bSGerd Hoffmann VirtIOGPUGL vdev; 32*17cdac0bSGerd Hoffmann }; 33*17cdac0bSGerd Hoffmann 34*17cdac0bSGerd Hoffmann static void virtio_gpu_gl_initfn(Object *obj) 35*17cdac0bSGerd Hoffmann { 36*17cdac0bSGerd Hoffmann VirtIOGPUGLPCI *dev = VIRTIO_GPU_GL_PCI(obj); 37*17cdac0bSGerd Hoffmann 38*17cdac0bSGerd Hoffmann virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev), 39*17cdac0bSGerd Hoffmann TYPE_VIRTIO_GPU_GL); 40*17cdac0bSGerd Hoffmann VIRTIO_GPU_PCI_BASE(obj)->vgpu = VIRTIO_GPU_BASE(&dev->vdev); 41*17cdac0bSGerd Hoffmann } 42*17cdac0bSGerd Hoffmann 43*17cdac0bSGerd Hoffmann static const VirtioPCIDeviceTypeInfo virtio_gpu_gl_pci_info = { 44*17cdac0bSGerd Hoffmann .generic_name = TYPE_VIRTIO_GPU_GL_PCI, 45*17cdac0bSGerd Hoffmann .parent = TYPE_VIRTIO_GPU_PCI_BASE, 46*17cdac0bSGerd Hoffmann .instance_size = sizeof(VirtIOGPUGLPCI), 47*17cdac0bSGerd Hoffmann .instance_init = virtio_gpu_gl_initfn, 48*17cdac0bSGerd Hoffmann }; 49*17cdac0bSGerd Hoffmann 50*17cdac0bSGerd Hoffmann static void virtio_gpu_gl_pci_register_types(void) 51*17cdac0bSGerd Hoffmann { 52*17cdac0bSGerd Hoffmann virtio_pci_types_register(&virtio_gpu_gl_pci_info); 53*17cdac0bSGerd Hoffmann } 54*17cdac0bSGerd Hoffmann 55*17cdac0bSGerd Hoffmann type_init(virtio_gpu_gl_pci_register_types) 56