virtio-gpu: use class function for ctrl queue handlers
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Message-id: 20210430113547.1816178-1-kraxel@redhat.com Message-Id: <20210430113547.1816178-6-kraxel@redhat.com>
This commit is contained in:
parent
76fa8b359b
commit
cabbe8e588
@ -909,7 +909,9 @@ static void virtio_gpu_handle_ctrl(VirtIODevice *vdev, VirtQueue *vq)
|
|||||||
static void virtio_gpu_ctrl_bh(void *opaque)
|
static void virtio_gpu_ctrl_bh(void *opaque)
|
||||||
{
|
{
|
||||||
VirtIOGPU *g = opaque;
|
VirtIOGPU *g = opaque;
|
||||||
virtio_gpu_handle_ctrl(&g->parent_obj.parent_obj, g->ctrl_vq);
|
VirtIOGPUClass *vgc = VIRTIO_GPU_GET_CLASS(g);
|
||||||
|
|
||||||
|
vgc->handle_ctrl(&g->parent_obj.parent_obj, g->ctrl_vq);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void virtio_gpu_handle_cursor(VirtIODevice *vdev, VirtQueue *vq)
|
static void virtio_gpu_handle_cursor(VirtIODevice *vdev, VirtQueue *vq)
|
||||||
@ -1226,9 +1228,12 @@ static void virtio_gpu_class_init(ObjectClass *klass, void *data)
|
|||||||
{
|
{
|
||||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||||
VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass);
|
VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass);
|
||||||
VirtIOGPUBaseClass *vgc = VIRTIO_GPU_BASE_CLASS(klass);
|
VirtIOGPUBaseClass *vbc = VIRTIO_GPU_BASE_CLASS(klass);
|
||||||
|
VirtIOGPUClass *vgc = VIRTIO_GPU_CLASS(klass);
|
||||||
|
|
||||||
|
vbc->gl_flushed = virtio_gpu_gl_flushed;
|
||||||
|
vgc->handle_ctrl = virtio_gpu_handle_ctrl;
|
||||||
|
|
||||||
vgc->gl_flushed = virtio_gpu_gl_flushed;
|
|
||||||
vdc->realize = virtio_gpu_device_realize;
|
vdc->realize = virtio_gpu_device_realize;
|
||||||
vdc->reset = virtio_gpu_reset;
|
vdc->reset = virtio_gpu_reset;
|
||||||
vdc->get_config = virtio_gpu_get_config;
|
vdc->get_config = virtio_gpu_get_config;
|
||||||
@ -1242,6 +1247,7 @@ static const TypeInfo virtio_gpu_info = {
|
|||||||
.name = TYPE_VIRTIO_GPU,
|
.name = TYPE_VIRTIO_GPU,
|
||||||
.parent = TYPE_VIRTIO_GPU_BASE,
|
.parent = TYPE_VIRTIO_GPU_BASE,
|
||||||
.instance_size = sizeof(VirtIOGPU),
|
.instance_size = sizeof(VirtIOGPU),
|
||||||
|
.class_size = sizeof(VirtIOGPUClass),
|
||||||
.class_init = virtio_gpu_class_init,
|
.class_init = virtio_gpu_class_init,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ OBJECT_DECLARE_TYPE(VirtIOGPUBase, VirtIOGPUBaseClass,
|
|||||||
VIRTIO_GPU_BASE)
|
VIRTIO_GPU_BASE)
|
||||||
|
|
||||||
#define TYPE_VIRTIO_GPU "virtio-gpu-device"
|
#define TYPE_VIRTIO_GPU "virtio-gpu-device"
|
||||||
OBJECT_DECLARE_SIMPLE_TYPE(VirtIOGPU, VIRTIO_GPU)
|
OBJECT_DECLARE_TYPE(VirtIOGPU, VirtIOGPUClass, VIRTIO_GPU)
|
||||||
|
|
||||||
#define TYPE_VIRTIO_GPU_GL "virtio-gpu-gl-device"
|
#define TYPE_VIRTIO_GPU_GL "virtio-gpu-gl-device"
|
||||||
OBJECT_DECLARE_SIMPLE_TYPE(VirtIOGPUGL, VIRTIO_GPU_GL)
|
OBJECT_DECLARE_SIMPLE_TYPE(VirtIOGPUGL, VIRTIO_GPU_GL)
|
||||||
@ -166,6 +166,12 @@ struct VirtIOGPU {
|
|||||||
} stats;
|
} stats;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct VirtIOGPUClass {
|
||||||
|
VirtIOGPUBaseClass parent;
|
||||||
|
|
||||||
|
void (*handle_ctrl)(VirtIODevice *vdev, VirtQueue *vq);
|
||||||
|
};
|
||||||
|
|
||||||
struct VirtIOGPUGL {
|
struct VirtIOGPUGL {
|
||||||
struct VirtIOGPU parent_obj;
|
struct VirtIOGPU parent_obj;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user