Changeset 1325 in vbox
- Timestamp:
- Mar 8, 2007 12:02:11 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/TRPM.cpp
r716 r1325 423 423 static DECLCALLBACK(int) trpmR3Load(PVM pVM, PSSMHANDLE pSSM, uint32_t u32Version); 424 424 static DECLCALLBACK(int) trpmGuestIDTWriteHandler(PVM pVM, RTGCPTR GCPtr, void *pvPtr, void *pvBuf, size_t cbBuf, PGMACCESSTYPE enmAccessType, void *pvUser); 425 static int trpmR3ClearGuestTrapHandler(PVM pVM, unsigned iTrap); 425 426 426 427 … … 868 869 { 869 870 /* Clear all handlers */ 871 Log(("TRPMR3SyncIDT: Clear all trap handlers.\n")); 870 872 /** @todo inefficient, but simple */ 871 873 for (unsigned iGate=0;iGate<256;iGate++) 872 TRPMR3SetGuestTrapHandler(pVM, iGate, TRPM_INVALID_HANDLER);874 trpmR3ClearGuestTrapHandler(pVM, iGate); 873 875 874 876 /* Scan them all (only the first time) */ … … 1103 1105 1104 1106 /** 1107 * Clear guest trap/interrupt gate handler 1108 * 1109 * @returns VBox status code. 1110 * @param pVM The VM to operate on. 1111 * @param iTrap Interrupt/trap number. 1112 */ 1113 static int trpmR3ClearGuestTrapHandler(PVM pVM, unsigned iTrap) 1114 { 1115 /* 1116 * Validate. 1117 */ 1118 if (iTrap >= ELEMENTS(pVM->trpm.s.aIdt)) 1119 { 1120 AssertMsg(iTrap < TRPM_HANDLER_INT_BASE, ("Illegal gate number %d!\n", iTrap)); 1121 return VERR_INVALID_PARAMETER; 1122 } 1123 1124 if (ASMBitTest(&pVM->trpm.s.au32IdtPatched[0], iTrap)) 1125 trpmR3ClearPassThroughHandler(pVM, iTrap); 1126 1127 pVM->trpm.s.aGuestTrapHandler[iTrap] = TRPM_INVALID_HANDLER; 1128 return VINF_SUCCESS; 1129 } 1130 1131 /** 1105 1132 * Set guest trap/interrupt gate handler 1106 1133 * Used for setting up trap gates used for kernel calls. … … 1133 1160 /* clear trap handler */ 1134 1161 Log(("TRPMR3SetGuestTrapHandler: clear handler %x\n", iTrap)); 1135 1136 if (ASMBitTest(&pVM->trpm.s.au32IdtPatched[0], iTrap)) 1137 trpmR3ClearPassThroughHandler(pVM, iTrap); 1138 1139 pVM->trpm.s.aGuestTrapHandler[iTrap] = TRPM_INVALID_HANDLER; 1140 return VINF_SUCCESS; 1162 return trpmR3ClearGuestTrapHandler(pVM, iTrap); 1141 1163 } 1142 1164
Note:
See TracChangeset
for help on using the changeset viewer.