Changeset View
Changeset View
Standalone View
Standalone View
sys/amd64/vmm/amd/vmcb.c
Show First 20 Lines • Show All 181 Lines • ▼ Show 20 Lines | vmcb_read(struct svm_softc *sc, int vcpu, int ident, uint64_t *retval) | ||||
case VM_REG_GUEST_CR3: | case VM_REG_GUEST_CR3: | ||||
*retval = state->cr3; | *retval = state->cr3; | ||||
break; | break; | ||||
case VM_REG_GUEST_CR4: | case VM_REG_GUEST_CR4: | ||||
*retval = state->cr4; | *retval = state->cr4; | ||||
break; | break; | ||||
case VM_REG_GUEST_DR6: | |||||
*retval = state->dr6; | |||||
break; | |||||
case VM_REG_GUEST_DR7: | case VM_REG_GUEST_DR7: | ||||
*retval = state->dr7; | *retval = state->dr7; | ||||
break; | break; | ||||
case VM_REG_GUEST_EFER: | case VM_REG_GUEST_EFER: | ||||
*retval = state->efer; | *retval = state->efer; | ||||
break; | break; | ||||
▲ Show 20 Lines • Show All 75 Lines • ▼ Show 20 Lines | case VM_REG_GUEST_CR3: | ||||
svm_set_dirty(sc, vcpu, VMCB_CACHE_CR); | svm_set_dirty(sc, vcpu, VMCB_CACHE_CR); | ||||
break; | break; | ||||
case VM_REG_GUEST_CR4: | case VM_REG_GUEST_CR4: | ||||
state->cr4 = val; | state->cr4 = val; | ||||
svm_set_dirty(sc, vcpu, VMCB_CACHE_CR); | svm_set_dirty(sc, vcpu, VMCB_CACHE_CR); | ||||
break; | break; | ||||
case VM_REG_GUEST_DR6: | |||||
state->dr6 = val; | |||||
svm_set_dirty(sc, vcpu, VMCB_CACHE_DR); | |||||
break; | |||||
case VM_REG_GUEST_DR7: | case VM_REG_GUEST_DR7: | ||||
state->dr7 = val; | state->dr7 = val; | ||||
svm_set_dirty(sc, vcpu, VMCB_CACHE_DR); | |||||
break; | break; | ||||
case VM_REG_GUEST_EFER: | case VM_REG_GUEST_EFER: | ||||
/* EFER_SVM must always be set when the guest is executing */ | /* EFER_SVM must always be set when the guest is executing */ | ||||
state->efer = val | EFER_SVM; | state->efer = val | EFER_SVM; | ||||
svm_set_dirty(sc, vcpu, VMCB_CACHE_CR); | svm_set_dirty(sc, vcpu, VMCB_CACHE_CR); | ||||
break; | break; | ||||
▲ Show 20 Lines • Show All 152 Lines • Show Last 20 Lines |