- Timestamp:
- Mar 15, 2007 4:27:16 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/EM.cpp
r1366 r1519 2174 2174 break; 2175 2175 } 2176 uint8_t u8Interrupt;2177 2176 2178 2177 Assert(TRPMHasTrap(pVM)); … … 2181 2180 if (TRPMHasTrap(pVM)) 2182 2181 { 2183 u8Interrupt = TRPMGetTrapNo(pVM); 2182 uint8_t u8Interrupt; 2183 uint32_t uErrorCode; 2184 TRPMERRORCODE enmError = TRPM_TRAP_NO_ERRORCODE; 2185 2186 rc = TRPMQueryTrapAll(pVM, &u8Interrupt, NULL, &uErrorCode, NULL); 2187 AssertRC(rc); 2188 2189 if (uErrorCode != ~0) 2190 enmError = TRPM_TRAP_HAS_ERRORCODE; 2184 2191 2185 2192 /* If the guest gate is marked unpatched, then we will check again if we can patch it. */ … … 2188 2195 CSAMR3CheckGates(pVM, u8Interrupt, 1); 2189 2196 Log(("emR3RawHandleRC: recheck gate %x -> valid=%d\n", u8Interrupt, TRPMR3GetGuestTrapHandler(pVM, u8Interrupt) != TRPM_INVALID_HANDLER)); 2190 /** @note If it was successful, then we could go back to raw mode, but let's keep things simple for now. */ 2197 /** If it was successful, then we could go back to raw mode. */ 2198 if (TRPMR3GetGuestTrapHandler(pVM, u8Interrupt) != TRPM_INVALID_HANDLER) 2199 { 2200 rc = TRPMForwardTrap(pVM, CPUMCTX2CORE(pCtx), u8Interrupt, uErrorCode, enmError, TRPM_TRAP); 2201 if (rc == VINF_SUCCESS /* Don't use VBOX_SUCCESS */) 2202 { 2203 TRPMResetTrap(pVM); 2204 return VINF_EM_RESCHEDULE_RAW; 2205 } 2206 } 2191 2207 } 2192 2208 }
Note:
See TracChangeset
for help on using the changeset viewer.