mirror of https://gitee.com/openkylin/qemu.git
kvm: Introduce kvm_arch_irqchip_create
Introduce kvm_arch_irqchip_create an arch-specific hook in preparation for architecture-specific use of the device control API to create IRQ chips. Following patches will implement the ARM irqchip create method to prefer the device control API over the older KVM_CREATE_IRQCHIP API. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org> Message-id: 1392687720-26806-3-git-send-email-christoffer.dall@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
876074c228
commit
d6032e06d1
|
@ -319,4 +319,16 @@ int kvm_irqchip_remove_irqfd_notifier(KVMState *s, EventNotifier *n, int virq);
|
|||
void kvm_pc_gsi_handler(void *opaque, int n, int level);
|
||||
void kvm_pc_setup_irq_routing(bool pci_enabled);
|
||||
void kvm_init_irq_routing(KVMState *s);
|
||||
|
||||
/**
|
||||
* kvm_arch_irqchip_create:
|
||||
* @KVMState: The KVMState pointer
|
||||
*
|
||||
* Allow architectures to create an in-kernel irq chip themselves.
|
||||
*
|
||||
* Returns: < 0: error
|
||||
* 0: irq chip was not created
|
||||
* > 0: irq chip was created
|
||||
*/
|
||||
int kvm_arch_irqchip_create(KVMState *s);
|
||||
#endif
|
||||
|
|
11
kvm-all.c
11
kvm-all.c
|
@ -1298,10 +1298,17 @@ static int kvm_irqchip_create(KVMState *s)
|
|||
return 0;
|
||||
}
|
||||
|
||||
ret = kvm_vm_ioctl(s, KVM_CREATE_IRQCHIP);
|
||||
/* First probe and see if there's a arch-specific hook to create the
|
||||
* in-kernel irqchip for us */
|
||||
ret = kvm_arch_irqchip_create(s);
|
||||
if (ret < 0) {
|
||||
fprintf(stderr, "Create kernel irqchip failed\n");
|
||||
return ret;
|
||||
} else if (ret == 0) {
|
||||
ret = kvm_vm_ioctl(s, KVM_CREATE_IRQCHIP);
|
||||
if (ret < 0) {
|
||||
fprintf(stderr, "Create kernel irqchip failed\n");
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
kvm_kernel_irqchip = true;
|
||||
|
|
|
@ -27,3 +27,4 @@ stub-obj-y += vm-stop.o
|
|||
stub-obj-y += vmstate.o
|
||||
stub-obj-$(CONFIG_WIN32) += fd-register.o
|
||||
stub-obj-y += cpus.o
|
||||
stub-obj-y += kvm.o
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
#include "qemu-common.h"
|
||||
#include "sysemu/kvm.h"
|
||||
|
||||
int kvm_arch_irqchip_create(KVMState *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue