summaryrefslogtreecommitdiffstats
path: root/sys/amd64
diff options
context:
space:
mode:
authorgrehan <grehan@FreeBSD.org>2012-10-12 23:12:19 +0000
committergrehan <grehan@FreeBSD.org>2012-10-12 23:12:19 +0000
commit8fb5b5f8de608d18362583be1e90150aab0b4d33 (patch)
tree8ef6a744c92c56fd814e6f7218044abeea9b04a6 /sys/amd64
parent4650e5d7766fa77e268a3c84cc8bd08857bb0287 (diff)
downloadFreeBSD-src-8fb5b5f8de608d18362583be1e90150aab0b4d33.zip
FreeBSD-src-8fb5b5f8de608d18362583be1e90150aab0b4d33.tar.gz
Add the guest physical address and r/w/x bits to
the paging exit in preparation for a rework of bhyve MMIO handling. Reviewed by: neel Obtained from: NetApp
Diffstat (limited to 'sys/amd64')
-rw-r--r--sys/amd64/include/vmm.h2
-rw-r--r--sys/amd64/vmm/intel/vmx.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/sys/amd64/include/vmm.h b/sys/amd64/include/vmm.h
index 4dfdd04..d0dfb04 100644
--- a/sys/amd64/include/vmm.h
+++ b/sys/amd64/include/vmm.h
@@ -266,6 +266,8 @@ struct vm_exit {
} inout;
struct {
uint64_t cr3;
+ uint64_t gpa;
+ int rwx;
} paging;
/*
* VMX specific payload. Used when there is no "better"
diff --git a/sys/amd64/vmm/intel/vmx.c b/sys/amd64/vmm/intel/vmx.c
index 6a1dbed..81969ea 100644
--- a/sys/amd64/vmm/intel/vmx.c
+++ b/sys/amd64/vmm/intel/vmx.c
@@ -1289,6 +1289,8 @@ vmx_exit_process(struct vmx *vmx, int vcpu, struct vm_exit *vmexit)
if (!handled) {
vmexit->exitcode = VM_EXITCODE_PAGING;
vmexit->u.paging.cr3 = cr3;
+ vmexit->u.paging.gpa = gpa;
+ vmexit->u.paging.rwx = qual & 0x7;
}
break;
default:
OpenPOWER on IntegriCloud