Changeset 45478 in vbox for trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
- Timestamp:
- Apr 11, 2013 9:20:01 AM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r45475 r45478 250 250 static DECLCALLBACK(int) hmR0VmxExitEptMisconfig(PVM pVM, PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient); 251 251 static DECLCALLBACK(int) hmR0VmxExitRdtscp(PVM pVM, PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient); 252 static DECLCALLBACK(int) hmR0VmxExitPreempt ionTimer(PVM pVM, PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient);252 static DECLCALLBACK(int) hmR0VmxExitPreemptTimer(PVM pVM, PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient); 253 253 static DECLCALLBACK(int) hmR0VmxExitWbinvd(PVM pVM, PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient); 254 254 static DECLCALLBACK(int) hmR0VmxExitXsetbv(PVM pVM, PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient); … … 336 336 /* 50 VMX_EXIT_INVEPT */ hmR0VmxExitInjectXcptUD, 337 337 /* 51 VMX_EXIT_RDTSCP */ hmR0VmxExitRdtscp, 338 /* 52 VMX_EXIT_PREEMPT ION_TIMER */ hmR0VmxExitPreemptionTimer,338 /* 52 VMX_EXIT_PREEMPT_TIMER */ hmR0VmxExitPreemptTimer, 339 339 /* 53 VMX_EXIT_INVVPID */ hmR0VmxExitInjectXcptUD, 340 340 /* 54 VMX_EXIT_WBINVD */ hmR0VmxExitWbinvd, … … 2426 2426 Assert(!(u32TprThreshold & 0xfffffff0)); /* Bits 31:4 MBZ. */ 2427 2427 2428 Log(("Getting TPR=%d Threshold=%u\n", pVCpu->hm.s.vmx.pbVirtApic[0x80], u32TprThreshold)); 2428 2429 rc = VMXWriteVmcs32(VMX_VMCS32_CTRL_TPR_THRESHOLD, u32TprThreshold); 2429 2430 AssertRCReturn(rc, rc); … … 4253 4254 VMXLOCAL_INIT_READ_CACHE_FIELD(pCache, VMX_VMCS32_GUEST_ACTIVITY_STATE); 4254 4255 VMXLOCAL_INIT_READ_CACHE_FIELD(pCache, VMX_VMCS32_GUEST_SMBASE); 4255 VMXLOCAL_INIT_READ_CACHE_FIELD(pCache, VMX_VMCS32_GUEST_PREEMPT ION_TIMER_VALUE);4256 VMXLOCAL_INIT_READ_CACHE_FIELD(pCache, VMX_VMCS32_GUEST_PREEMPT_TIMER_VALUE); 4256 4257 #endif 4257 4258 … … 4503 4504 4504 4505 uint32_t cPreemptionTickCount = (uint32_t)RT_MIN(cTicksToDeadline, UINT32_MAX - 16); 4505 rc = VMXWriteVmcs32(VMX_VMCS32_GUEST_PREEMPT ION_TIMER_VALUE, cPreemptionTickCount);AssertRC(rc);4506 rc = VMXWriteVmcs32(VMX_VMCS32_GUEST_PREEMPT_TIMER_VALUE, cPreemptionTickCount); AssertRC(rc); 4506 4507 } 4507 4508 else … … 6578 6579 && pVmxTransient->u8GuestTpr != pVCpu->hm.s.vmx.pbVirtApic[0x80]) 6579 6580 { 6581 Log(("Setting TPR=%d\n", pVCpu->hm.s.vmx.pbVirtApic[0x80])); 6580 6582 rc = PDMApicSetTPR(pVCpu, pVCpu->hm.s.vmx.pbVirtApic[0x80]); 6581 6583 AssertRC(rc); … … 6686 6688 case VMX_EXIT_MONITOR: rc = hmR0VmxExitMonitor(pVM, pVCpu, pMixedCtx, pVmxTransient); break; 6687 6689 case VMX_EXIT_TASK_SWITCH: rc = hmR0VmxExitTaskSwitch(pVM, pVCpu, pMixedCtx, pVmxTransient); break; 6688 case VMX_EXIT_PREEMPT ION_TIMER: rc = hmR0VmxExitPreemptionTimer(pVM, pVCpu, pMixedCtx, pVmxTransient); break;6690 case VMX_EXIT_PREEMPT_TIMER: rc = hmR0VmxExitPreemptTimer(pVM, pVCpu, pMixedCtx, pVmxTransient); break; 6689 6691 case VMX_EXIT_RDMSR: rc = hmR0VmxExitRdmsr(pVM, pVCpu, pMixedCtx, pVmxTransient); break; 6690 6692 case VMX_EXIT_WRMSR: rc = hmR0VmxExitWrmsr(pVM, pVCpu, pMixedCtx, pVmxTransient); break; … … 7316 7318 * VM-exit handler for expiry of the VMX preemption timer. 7317 7319 */ 7318 static DECLCALLBACK(int) hmR0VmxExitPreempt ionTimer(PVM pVM, PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient)7320 static DECLCALLBACK(int) hmR0VmxExitPreemptTimer(PVM pVM, PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient) 7319 7321 { 7320 7322 VMX_VALIDATE_EXIT_HANDLER_PARAMS(); … … 8006 8008 #else 8007 8009 /* Aggressive state sync. for now. */ 8008 rc = hmR0VmxSaveGuestGprs(pVM, pVCpu, pMixedCtx);8010 rc = hmR0VmxSaveGuestGprs(pVM, pVCpu, pMixedCtx); 8009 8011 rc |= hmR0VmxSaveGuestControlRegs(pVM, pVCpu, pMixedCtx); 8010 8012 rc |= hmR0VmxSaveGuestSegmentRegs(pVM, pVCpu, pMixedCtx);
Note:
See TracChangeset
for help on using the changeset viewer.