mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 01:33:56 -06:00
s390x/virtio-ccw: wire up irq routing and irqfds
Make use of the new s390 adapter irq routing support to enable real in-kernel irqfds for virtio-ccw with adapter interrupts. Note that s390 doesn't provide the common KVM_CAP_IRQCHIP capability, but rather needs KVM_CAP_S390_IRQCHIP to be enabled. This is to ensure backward compatibility. Reviewed-by: Thomas Huth <thuth@linux.vnet.ibm.com> Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com> Acked-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
This commit is contained in:
parent
7bca3892cb
commit
d426d9fba8
11 changed files with 329 additions and 18 deletions
|
@ -14,6 +14,14 @@
|
|||
#define __HW_S390_FLIC_H
|
||||
|
||||
#include "hw/sysbus.h"
|
||||
#include "hw/s390x/adapter.h"
|
||||
#include "hw/virtio/virtio.h"
|
||||
|
||||
typedef struct AdapterRoutes {
|
||||
AdapterInfo adapter;
|
||||
int num_routes;
|
||||
int gsi[VIRTIO_PCI_QUEUE_MAX];
|
||||
} AdapterRoutes;
|
||||
|
||||
#define TYPE_S390_FLIC_COMMON "s390-flic"
|
||||
#define S390_FLIC_COMMON(obj) \
|
||||
|
@ -34,6 +42,10 @@ typedef struct S390FLICStateClass {
|
|||
|
||||
int (*register_io_adapter)(S390FLICState *fs, uint32_t id, uint8_t isc,
|
||||
bool swap, bool maskable);
|
||||
int (*io_adapter_map)(S390FLICState *fs, uint32_t id, uint64_t map_addr,
|
||||
bool do_map);
|
||||
int (*add_adapter_routes)(S390FLICState *fs, AdapterRoutes *routes);
|
||||
void (*release_adapter_routes)(S390FLICState *fs, AdapterRoutes *routes);
|
||||
} S390FLICStateClass;
|
||||
|
||||
#define TYPE_KVM_S390_FLIC "s390-flic-kvm"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue