17df2c718SJuan Quintela /*
27df2c718SJuan Quintela  * Virtio input host PCI Bindings
37df2c718SJuan Quintela  *
47df2c718SJuan Quintela  * This work is licensed under the terms of the GNU GPL, version 2 or
57df2c718SJuan Quintela  * (at your option) any later version.  See the COPYING file in the
67df2c718SJuan Quintela  * top-level directory.
77df2c718SJuan Quintela  */
87df2c718SJuan Quintela 
97df2c718SJuan Quintela #include "qemu/osdep.h"
107df2c718SJuan Quintela 
11*e1b1f534SAlex Bennée #include "hw/virtio/virtio-pci.h"
127df2c718SJuan Quintela #include "hw/virtio/virtio-input.h"
130b8fa32fSMarkus Armbruster #include "qemu/module.h"
14db1015e9SEduardo Habkost #include "qom/object.h"
157df2c718SJuan Quintela 
167df2c718SJuan Quintela typedef struct VirtIOInputHostPCI VirtIOInputHostPCI;
177df2c718SJuan Quintela 
18d923e305SGerd Hoffmann #define TYPE_VIRTIO_INPUT_HOST_PCI "virtio-input-host-pci"
198110fa1dSEduardo Habkost DECLARE_INSTANCE_CHECKER(VirtIOInputHostPCI, VIRTIO_INPUT_HOST_PCI,
208110fa1dSEduardo Habkost                          TYPE_VIRTIO_INPUT_HOST_PCI)
217df2c718SJuan Quintela 
227df2c718SJuan Quintela struct VirtIOInputHostPCI {
237df2c718SJuan Quintela     VirtIOPCIProxy parent_obj;
247df2c718SJuan Quintela     VirtIOInputHost vdev;
257df2c718SJuan Quintela };
267df2c718SJuan Quintela 
virtio_host_initfn(Object * obj)277df2c718SJuan Quintela static void virtio_host_initfn(Object *obj)
287df2c718SJuan Quintela {
297df2c718SJuan Quintela     VirtIOInputHostPCI *dev = VIRTIO_INPUT_HOST_PCI(obj);
307df2c718SJuan Quintela 
317df2c718SJuan Quintela     virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
327df2c718SJuan Quintela                                 TYPE_VIRTIO_INPUT_HOST);
337df2c718SJuan Quintela }
347df2c718SJuan Quintela 
357df2c718SJuan Quintela static const VirtioPCIDeviceTypeInfo virtio_input_host_pci_info = {
36d923e305SGerd Hoffmann     .generic_name  = TYPE_VIRTIO_INPUT_HOST_PCI,
377df2c718SJuan Quintela     .parent        = TYPE_VIRTIO_INPUT_PCI,
387df2c718SJuan Quintela     .instance_size = sizeof(VirtIOInputHostPCI),
397df2c718SJuan Quintela     .instance_init = virtio_host_initfn,
407df2c718SJuan Quintela };
417df2c718SJuan Quintela 
virtio_input_host_pci_register(void)427df2c718SJuan Quintela static void virtio_input_host_pci_register(void)
437df2c718SJuan Quintela {
447df2c718SJuan Quintela     virtio_pci_types_register(&virtio_input_host_pci_info);
457df2c718SJuan Quintela }
467df2c718SJuan Quintela 
477df2c718SJuan Quintela type_init(virtio_input_host_pci_register)
48