Lines Matching defs:iTrap

704     for (uint32_t iTrap = 0; iTrap < RT_ELEMENTS(pVM->trpm.s.aGuestTrapHandler); iTrap++)
706 if (pVM->trpm.s.aGuestTrapHandler[iTrap] != TRPM_INVALID_HANDLER)
708 Log(("TRPMR3Relocate: iGate=%2X Handler %RRv -> %RRv\n", iTrap, pVM->trpm.s.aGuestTrapHandler[iTrap], pVM->trpm.s.aGuestTrapHandler[iTrap] + offDelta));
709 pVM->trpm.s.aGuestTrapHandler[iTrap] += offDelta;
712 if (ASMBitTest(&pVM->trpm.s.au32IdtPatched[0], iTrap))
714 PVBOXIDTE pIdteCur = &pVM->trpm.s.aIdt[iTrap];
717 Log(("TRPMR3Relocate: *iGate=%2X Handler %RGv -> %RGv\n", iTrap, pHandler, pHandler + offDelta));
890 for (uint32_t iTrap = 0; iTrap < RT_ELEMENTS(pTrpm->aGuestTrapHandler); iTrap++)
892 if (pTrpm->aGuestTrapHandler[iTrap])
894 SSMR3PutU32(pSSM, iTrap);
895 SSMR3PutGCPtr(pSSM, pTrpm->aGuestTrapHandler[iTrap]);
896 SSMR3PutMem(pSSM, &pTrpm->aIdt[iTrap], sizeof(pTrpm->aIdt[iTrap]));
1011 uint32_t iTrap;
1012 rc = SSMR3GetU32(pSSM, &iTrap);
1015 if (iTrap == (uint32_t)~0)
1017 if ( iTrap >= RT_ELEMENTS(pTrpm->aIdt)
1018 || pTrpm->aGuestTrapHandler[iTrap])
1020 AssertMsgFailed(("iTrap=%#x\n", iTrap));
1032 pTrpm->aIdt[iTrap] = Idte;
1182 * @param iTrap Trap/interrupt gate number.
1184 int trpmR3ClearPassThroughHandler(PVM pVM, unsigned iTrap)
1199 if ( iTrap < TRPM_HANDLER_INT_BASE
1200 || iTrap >= RT_ELEMENTS(pVM->trpm.s.aIdt))
1202 AssertMsg(iTrap < TRPM_HANDLER_INT_BASE, ("Illegal gate number %#x!\n", iTrap));
1205 memcpy(&pVM->trpm.s.aIdt[iTrap], &g_aIdt[iTrap], sizeof(pVM->trpm.s.aIdt[0]));
1208 ASMBitClear(&pVM->trpm.s.au32IdtPatched[0], iTrap);
1211 PVBOXIDTE pIdte = &pVM->trpm.s.aIdt[iTrap];
1212 PVBOXIDTE_GENERIC pIdteTemplate = &g_aIdt[iTrap];
1225 Offset += iTrap * 8;
1251 for (uint32_t iTrap = 0; iTrap < RT_ELEMENTS(pVM->trpm.s.aGuestTrapHandler); iTrap++)
1253 if (pVM->trpm.s.aGuestTrapHandler[iTrap] == GCPtr)
1254 return iTrap;
1257 if (ASMBitTest(&pVM->trpm.s.au32IdtPatched[0], iTrap))
1259 PVBOXIDTE pIdte = &pVM->trpm.s.aIdt[iTrap];
1263 return iTrap;
1275 * @param iTrap Interrupt/trap number.
1277 VMMR3DECL(RTRCPTR) TRPMR3GetGuestTrapHandler(PVM pVM, unsigned iTrap)
1279 AssertReturn(iTrap < RT_ELEMENTS(pVM->trpm.s.aIdt), TRPM_INVALID_HANDLER);
1282 return pVM->trpm.s.aGuestTrapHandler[iTrap];
1292 * @param iTrap Interrupt/trap number.
1295 VMMR3DECL(int) TRPMR3SetGuestTrapHandler(PVM pVM, unsigned iTrap, RTRCPTR pHandler)
1305 if (iTrap >= RT_ELEMENTS(pVM->trpm.s.aIdt))
1307 AssertMsg(iTrap < TRPM_HANDLER_INT_BASE, ("Illegal gate number %d!\n", iTrap));
1315 if (iTrap * sizeof(VBOXIDTE) >= cbIDT)
1321 Log(("TRPMR3SetGuestTrapHandler: clear handler %x\n", iTrap));
1322 return trpmClearGuestTrapHandler(pVM, iTrap);
1329 int rc = PGMPhysSimpleReadGCPtr(pVCpu, &GuestIdte, GCPtrIDT + iTrap * sizeof(GuestIdte), sizeof(GuestIdte));
1363 if (iTrap == 0x2E)
1365 if (iTrap == 0x80)
1375 PVBOXIDTE pIdte = &pVM->trpm.s.aIdt[iTrap];
1384 ASMBitSet(&pVM->trpm.s.au32IdtPatched[0], iTrap);
1387 pVM->trpm.s.aGuestTrapHandler[iTrap] = pHandler;
1389 Log(("Setting trap handler %x to %08X (direct)\n", iTrap, pHandler));
1404 Log(("Setting trap handler %x to %08X\n", iTrap, pHandler));
1405 pVM->trpm.s.aGuestTrapHandler[iTrap] = pHandler;