summaryrefslogtreecommitdiffstats
path: root/sys/amd64/include
diff options
context:
space:
mode:
authorneel <neel@FreeBSD.org>2012-10-24 02:54:21 +0000
committerneel <neel@FreeBSD.org>2012-10-24 02:54:21 +0000
commit583a9ef76d9ec8f3bb8e7927281cfe79fc0c0584 (patch)
treeebe1a9d2777b5f416d302581cf79fa0ff4d66b9f /sys/amd64/include
parenta74007510aa98cb51b2d7cc4056a994e3bf64763 (diff)
downloadFreeBSD-src-583a9ef76d9ec8f3bb8e7927281cfe79fc0c0584.zip
FreeBSD-src-583a9ef76d9ec8f3bb8e7927281cfe79fc0c0584.tar.gz
Maintain state regarding NMI delivery to guest vcpu in VT-x independent manner.
Also add a stats counter to count the number of NMIs delivered per vcpu. Obtained from: NetApp
Diffstat (limited to 'sys/amd64/include')
-rw-r--r--sys/amd64/include/vmm.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/amd64/include/vmm.h b/sys/amd64/include/vmm.h
index d0dfb04..8f78b8f 100644
--- a/sys/amd64/include/vmm.h
+++ b/sys/amd64/include/vmm.h
@@ -63,7 +63,6 @@ typedef int (*vmi_set_desc_t)(void *vmi, int vcpu, int num,
typedef int (*vmi_inject_event_t)(void *vmi, int vcpu,
int type, int vector,
uint32_t code, int code_valid);
-typedef int (*vmi_inject_nmi_t)(void *vmi, int vcpu);
typedef int (*vmi_get_cap_t)(void *vmi, int vcpu, int num, int *retval);
typedef int (*vmi_set_cap_t)(void *vmi, int vcpu, int num, int val);
@@ -81,7 +80,6 @@ struct vmm_ops {
vmi_get_desc_t vmgetdesc;
vmi_set_desc_t vmsetdesc;
vmi_inject_event_t vminject;
- vmi_inject_nmi_t vmnmi;
vmi_get_cap_t vmgetcap;
vmi_set_cap_t vmsetcap;
};
@@ -110,6 +108,8 @@ int vm_run(struct vm *vm, struct vm_run *vmrun);
int vm_inject_event(struct vm *vm, int vcpu, int type,
int vector, uint32_t error_code, int error_code_valid);
int vm_inject_nmi(struct vm *vm, int vcpu);
+int vm_nmi_pending(struct vm *vm, int vcpuid);
+void vm_nmi_clear(struct vm *vm, int vcpuid);
uint64_t *vm_guest_msrs(struct vm *vm, int cpu);
struct vlapic *vm_lapic(struct vm *vm, int cpu);
int vm_get_capability(struct vm *vm, int vcpu, int type, int *val);
OpenPOWER on IntegriCloud