- Timestamp:
- Apr 8, 2013 11:07:50 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r45414 r45419 831 831 { 832 832 /* Setup the main VM exit handlers. */ 833 /** @todo I'm told lookup table for function pointers is a bad idea in terms834 * of performance. Make these static for now and not do change anything835 * at runtime so we can easily switch to a switch-case approach later. */836 833 AssertCompile(VMX_EXIT_MAX + 1 == RT_ELEMENTS(s_apfnVMExitHandlers)); 837 834 #ifdef DEBUG … … 1141 1138 * 1142 1139 * @remarks Called with interrupts disabled. 1143 * @todo Statistics.1144 1140 */ 1145 1141 static DECLCALLBACK(void) hmR0VmxFlushTaggedTlbBoth(PVM pVM, PVMCPU pVCpu) … … 1259 1255 * 1260 1256 * @remarks Called with interrupts disabled. 1261 * @todo Statistics.1262 1257 */ 1263 1258 static DECLCALLBACK(void) hmR0VmxFlushTaggedTlbEpt(PVM pVM, PVMCPU pVCpu) … … 1326 1321 * 1327 1322 * @remarks Called with interrupts disabled. 1328 * @todo Statistics.1329 1323 */ 1330 1324 static DECLCALLBACK(void) hmR0VmxFlushTaggedTlbVpid(PVM pVM, PVMCPU pVCpu) … … 2742 2736 uint64_t u64CR0Mask = 0; 2743 2737 u64CR0Mask = X86_CR0_PE 2744 | X86_CR0_WP /** @todo do we need to monitor WP with nested paging? */2745 | X86_CR0_PG /** @todo do we need to monitor PG with nested paging? */2738 | X86_CR0_WP 2739 | X86_CR0_PG 2746 2740 | X86_CR0_ET /* Bit ignored on VM-entry and VM-exit. Don't let the guest modify the host CR0.ET */ 2747 2741 | X86_CR0_CD /* Bit ignored on VM-entry and VM-exit. Don't let the guest modify the host CR0.CD */ … … 2932 2926 uint64_t u64CR4Mask = 0; 2933 2927 u64CR4Mask = X86_CR4_VME 2934 | X86_CR4_PAE /** @todo should we intercept this bit with Nested Paging? */2935 | X86_CR4_PGE /** @todo why should we care if guest changes PGE bit or not with Nested Paging? */2936 | X86_CR4_PSE /** @todo do we care about page-size extensions in the Nested Paging case? */2928 | X86_CR4_PAE 2929 | X86_CR4_PGE 2930 | X86_CR4_PSE 2937 2931 | X86_CR4_VMXE; 2938 2932 pVCpu->hm.s.vmx.cr4_mask = u64CR4Mask; … … 3063 3057 && !CPUMIsGuestInV86ModeEx(pCtx))) 3064 3058 { 3065 /** @todo DPL checks for CS, SS. */3066 3059 /* Protected mode checks */ 3067 3060 /* CS */ … … 3662 3655 * 3663 3656 * @remarks No-long-jump zone!!! 3664 * @todo change this to return void.3665 3657 */ 3666 3658 DECLINLINE(int) hmR0VmxSetupVMRunHandler(PVM pVM, PVMCPU pVCpu, PCPUMCTX pCtx) … … 8151 8143 8152 8144 Log(("EPT return to ring-3 rc=%d\n")); 8153 8154 /* We need to go back to ring-3 to emulate the instruction as we could not handle it correctly, tell TRPM. */8155 /** @todo Shouldn't we update TRPM here? */8156 8145 return rc; 8157 8146 } … … 8238 8227 if (rc == VINF_EM_RAW_GUEST_TRAP) 8239 8228 { 8240 /** @todo revisit this. */8241 8229 /* DR6, DR7.GD and IA32_DEBUGCTL.LBR are not updated yet. See Intel spec. 27.1 "Architectural State before a VM-Exit". */ 8242 8230 pMixedCtx->dr[6] = uDR6;
Note:
See TracChangeset
for help on using the changeset viewer.