- Timestamp:
- Mar 9, 2007 3:47:21 PM (18 years ago)
- svn:sync-xref-src-repo-rev:
- 19376
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMGC/TRPMGC.cpp
r1379 r1380 111 111 RTGCPTR GCPtrIDTEnd = (RTGCPTR)((RTGCUINTPTR)GCPtrIDT + cbIDT + 1); 112 112 #endif 113 uint32_t i Trap= ((RTGCUINTPTR)pvFault - (RTGCUINTPTR)GCPtrIDT)/sizeof(VBOXIDTE);113 uint32_t iGate = ((RTGCUINTPTR)pvFault - (RTGCUINTPTR)GCPtrIDT)/sizeof(VBOXIDTE); 114 114 115 115 Assert(pvFault >= GCPtrIDT && pvFault < GCPtrIDTEnd); … … 118 118 #if 0 119 119 /* Check if we can handle the write here. */ 120 if ( i Trap!= 3 /* Gate 3 is handled differently; could do it here as well, but let ring 3 handle this case for now. */121 && !ASMBitTest(&pVM->trpm.s.au32IdtPatched[0], i Trap)) /* Passthru gates need special attention too. */120 if ( iGate != 3 /* Gate 3 is handled differently; could do it here as well, but let ring 3 handle this case for now. */ 121 && !ASMBitTest(&pVM->trpm.s.au32IdtPatched[0], iGate)) /* Passthru gates need special attention too. */ 122 122 { 123 123 uint32_t cb; … … 125 125 if (VBOX_SUCCESS(rc) && cb) 126 126 { 127 uint32_t i Trap1 = ((RTGCUINTPTR)pvFault - (RTGCUINTPTR)GCPtrIDT + cb - 1)/sizeof(VBOXIDTE);127 uint32_t iGate1 = ((RTGCUINTPTR)pvFault - (RTGCUINTPTR)GCPtrIDT + cb - 1)/sizeof(VBOXIDTE); 128 128 129 Log(("trpmgcGuestIDTWriteHandler: write to gate %x (%x) offset %x cb=%d\n", i Trap, iTrap1, (RTGCUINTPTR)pvFault - (RTGCUINTPTR)GCPtrIDT, cb));129 Log(("trpmgcGuestIDTWriteHandler: write to gate %x (%x) offset %x cb=%d\n", iGate, iGate1, (RTGCUINTPTR)pvFault - (RTGCUINTPTR)GCPtrIDT, cb)); 130 130 131 trpmClearGuestTrapHandler(pVM, i Trap);132 if (i Trap != iTrap1)133 trpmClearGuestTrapHandler(pVM, i Trap1);131 trpmClearGuestTrapHandler(pVM, iGate); 132 if (iGate != iGate1) 133 trpmClearGuestTrapHandler(pVM, iGate1); 134 134 135 135 STAM_COUNTER_INC(&pVM->trpm.s.StatGCWriteGuestIDTHandled); … … 139 139 #endif 140 140 141 Log(("trpmgcGuestIDTWriteHandler: write to gate %x offset %x\n", i Trap, (RTGCUINTPTR)pvFault - (RTGCUINTPTR)GCPtrIDT));141 Log(("trpmgcGuestIDTWriteHandler: write to gate %x offset %x\n", iGate, (RTGCUINTPTR)pvFault - (RTGCUINTPTR)GCPtrIDT)); 142 142 143 143 /** @todo Check which IDT entry and keep the update cost low in TRPMR3SyncIDT() and CSAMCheckGates(). */
Note:
See TracChangeset
for help on using the changeset viewer.