diff options
author | grehan <grehan@FreeBSD.org> | 2012-10-12 23:12:19 +0000 |
---|---|---|
committer | grehan <grehan@FreeBSD.org> | 2012-10-12 23:12:19 +0000 |
commit | 8fb5b5f8de608d18362583be1e90150aab0b4d33 (patch) | |
tree | 8ef6a744c92c56fd814e6f7218044abeea9b04a6 /sys/amd64 | |
parent | 4650e5d7766fa77e268a3c84cc8bd08857bb0287 (diff) | |
download | FreeBSD-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.h | 2 | ||||
-rw-r--r-- | sys/amd64/vmm/intel/vmx.c | 2 |
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: |