mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 00:33:55 -06:00
kvm: x86: Add user space part for in-kernel APIC
This introduces the alternative APIC device which makes use of KVM's in-kernel device model. External NMI injection via LINT1 is emulated by checking the current state of the in-kernel APIC, only injecting a NMI into the VCPU if LINT1 is unmasked and configured to DM_NMI. MSI is not yet supported, so we disable this when the in-kernel model is in use. CC: Lai Jiangshan <laijs@cn.fujitsu.com> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
This commit is contained in:
parent
9b5b76d449
commit
680c1c6fd7
5 changed files with 191 additions and 6 deletions
4
kvm.h
4
kvm.h
|
@ -31,6 +31,7 @@ extern int kvm_allowed;
|
|||
#endif
|
||||
|
||||
struct kvm_run;
|
||||
struct kvm_lapic_state;
|
||||
|
||||
typedef struct KVMCapabilityInfo {
|
||||
const char *name;
|
||||
|
@ -134,6 +135,9 @@ int kvm_irqchip_set_irq(KVMState *s, int irq, int level);
|
|||
void kvm_irqchip_add_route(KVMState *s, int gsi, int irqchip, int pin);
|
||||
int kvm_irqchip_commit_routes(KVMState *s);
|
||||
|
||||
void kvm_put_apic_state(DeviceState *d, struct kvm_lapic_state *kapic);
|
||||
void kvm_get_apic_state(DeviceState *d, struct kvm_lapic_state *kapic);
|
||||
|
||||
struct kvm_guest_debug;
|
||||
struct kvm_debug_exit_arch;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue