diff options
author | neel <neel@FreeBSD.org> | 2012-10-24 02:54:21 +0000 |
---|---|---|
committer | neel <neel@FreeBSD.org> | 2012-10-24 02:54:21 +0000 |
commit | 583a9ef76d9ec8f3bb8e7927281cfe79fc0c0584 (patch) | |
tree | ebe1a9d2777b5f416d302581cf79fa0ff4d66b9f /sys/amd64/include/vmm.h | |
parent | a74007510aa98cb51b2d7cc4056a994e3bf64763 (diff) | |
download | FreeBSD-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/vmm.h')
-rw-r--r-- | sys/amd64/include/vmm.h | 4 |
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); |