aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/kvm_host.h
diff options
context:
space:
mode:
authorGleb Natapov <gleb@redhat.com>2009-04-21 10:45:08 -0400
committerAvi Kivity <avi@redhat.com>2009-06-10 04:48:48 -0400
commit95ba82731374eb1c2af4dd442526c4b314f0e8b6 (patch)
treea8b8e23285686761694ee214c6de85e83f52652b /arch/x86/include/asm/kvm_host.h
parentc4282df98ae0993983924c00ed76428a6609d68b (diff)
KVM: SVM: Add NMI injection support
Signed-off-by: Gleb Natapov <gleb@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/include/asm/kvm_host.h')
-rw-r--r--arch/x86/include/asm/kvm_host.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index 53533ea17555..dd9ecd3de90d 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -512,10 +512,15 @@ struct kvm_x86_ops {
512 unsigned char *hypercall_addr); 512 unsigned char *hypercall_addr);
513 int (*get_irq)(struct kvm_vcpu *vcpu); 513 int (*get_irq)(struct kvm_vcpu *vcpu);
514 void (*set_irq)(struct kvm_vcpu *vcpu, int vec); 514 void (*set_irq)(struct kvm_vcpu *vcpu, int vec);
515 void (*set_nmi)(struct kvm_vcpu *vcpu);
515 void (*queue_exception)(struct kvm_vcpu *vcpu, unsigned nr, 516 void (*queue_exception)(struct kvm_vcpu *vcpu, unsigned nr,
516 bool has_error_code, u32 error_code); 517 bool has_error_code, u32 error_code);
517 void (*inject_pending_irq)(struct kvm_vcpu *vcpu, struct kvm_run *run);
518 int (*interrupt_allowed)(struct kvm_vcpu *vcpu); 518 int (*interrupt_allowed)(struct kvm_vcpu *vcpu);
519 int (*nmi_allowed)(struct kvm_vcpu *vcpu);
520 void (*enable_nmi_window)(struct kvm_vcpu *vcpu);
521 void (*enable_irq_window)(struct kvm_vcpu *vcpu);
522 void (*update_cr8_intercept)(struct kvm_vcpu *vcpu, int tpr, int irr);
523 void (*drop_interrupt_shadow)(struct kvm_vcpu *vcpu);
519 int (*set_tss_addr)(struct kvm *kvm, unsigned int addr); 524 int (*set_tss_addr)(struct kvm *kvm, unsigned int addr);
520 int (*get_tdp_level)(void); 525 int (*get_tdp_level)(void);
521 int (*get_mt_mask_shift)(void); 526 int (*get_mt_mask_shift)(void);
@@ -763,6 +768,7 @@ enum {
763#define HF_GIF_MASK (1 << 0) 768#define HF_GIF_MASK (1 << 0)
764#define HF_HIF_MASK (1 << 1) 769#define HF_HIF_MASK (1 << 1)
765#define HF_VINTR_MASK (1 << 2) 770#define HF_VINTR_MASK (1 << 2)
771#define HF_NMI_MASK (1 << 3)
766 772
767/* 773/*
768 * Hardware virtualization extension instructions may fault if a 774 * Hardware virtualization extension instructions may fault if a