Lines Matching refs:rec
552 RELOCREC rec = *(PRELOCREC)pNode;
553 RTRCPTR *pFixup = (RTRCPTR *)rec.pRelocPos;
557 Assert(rec.pRelocPos);
558 uintptr_t offRelocPos = (uintptr_t)rec.pRelocPos - (uintptr_t)pVM->patm.s.pPatchMemHC;
561 rec.pRelocPos = (uint8_t *)offRelocPos;
563 /* Zero rec.Core.Key since it's unused and may trigger SSM check due to the hack below. */
564 rec.Core.Key = 0;
568 int rc = SSMR3PutStructEx(pSSM, &rec, sizeof(rec), 0 /*fFlags*/, &g_aPatmRelocRec[0], NULL);
955 RELOCREC rec;
959 RT_ZERO(rec);
960 rc = SSMR3GetStructEx(pSSM, &rec, sizeof(rec), fStructRestoreFlags, &g_aPatmRelocRec[0], NULL);
965 /* rec.pRelocPos now contains the relative position inside the hypervisor area. */
966 offset = (int32_t)(intptr_t)rec.pRelocPos;
968 if ((uintptr_t)rec.pRelocPos < pVM->patm.s.cbPatchMem)
969 rec.pRelocPos = pVM->patm.s.pPatchMemHC + (uintptr_t)rec.pRelocPos;
971 rec.pRelocPos = NULL;
972 pFixup = (RTRCPTR *)rec.pRelocPos;
976 if ( rec.uType == FIXUP_REL_JMPTOPATCH
982 rec.pRelocPos = pPrivInstrHC + offset2;
983 pFixup = (RTRCPTR *)rec.pRelocPos;
986 rc = patmCorrectFixup(pVM, uVersion, patmInfo, &pPatchRec->patch, &rec, offset, pFixup);
990 rc = patmPatchAddReloc32(pVM, &pPatchRec->patch, rec.pRelocPos, rec.uType, rec.pSource, rec.pDest);
1005 RECPATCHTOGUEST rec;
1011 RT_ZERO(rec);
1012 rc = SSMR3GetStructEx(pSSM, &rec, sizeof(rec), fStructRestoreFlags, &g_aPatmRecPatchToGuest[0], NULL);
1015 patmR3AddP2GLookupRecord(pVM, &pPatchRec->patch, (uintptr_t)rec.Core.Key + pVM->patm.s.pPatchMemHC, rec.pOrgInstrGC, rec.enmType, rec.fDirty);
1068 /* rec.pRelocPos now contains the relative position inside the hypervisor area. */