Lines Matching refs:Tss

135     AssertCompile((RT_OFFSETOF(VM, selm.s.Tss)       & PAGE_OFFSET_MASK) <= PAGE_SIZE - sizeof(pVM->selm.s.Tss));
138 AssertRelease((RT_OFFSETOF(VM, selm.s.Tss) & PAGE_OFFSET_MASK) <= PAGE_SIZE - sizeof(pVM->selm.s.Tss));
140 AssertRelease(sizeof(pVM->selm.s.Tss.IntRedirBitmap) == 0x20);
186 pVM->selm.s.Tss.offIoBitmap = sizeof(VBOXTSS);
188 memset(pVM->selm.s.Tss.IntRedirBitmap, 0xff, sizeof(pVM->selm.s.Tss.IntRedirBitmap));
387 RTRCPTR RCPtrTSS = VM_RC_ADDR(pVM, &pVM->selm.s.Tss);
464 pVM->selm.s.Tss.cr3 = PGMGetHyperCR3(pVCpu);
465 pVM->selm.s.Tss.ss0 = pVM->selm.s.aHyperSel[SELM_HYPER_SEL_DS];
466 pVM->selm.s.Tss.esp0 = VMMGetStackRC(pVCpu);
467 pVM->selm.s.Tss.cs = pVM->selm.s.aHyperSel[SELM_HYPER_SEL_CS];
468 pVM->selm.s.Tss.ds = pVM->selm.s.aHyperSel[SELM_HYPER_SEL_DS];
469 pVM->selm.s.Tss.es = pVM->selm.s.aHyperSel[SELM_HYPER_SEL_DS];
470 pVM->selm.s.Tss.offIoBitmap = sizeof(VBOXTSS);
486 pVM->selm.s.TssTrap08.ecx = VM_RC_ADDR(pVM, &pVM->selm.s.Tss); /* setup ecx to normal Hypervisor TSS address. */
520 pVM->selm.s.pvMonShwTssRC = VM_RC_ADDR(pVM, &pVM->selm.s.Tss);
522 pVM->selm.s.pvMonShwTssRC + sizeof(pVM->selm.s.Tss) - 1,
1599 VBOXTSS Tss;
1601 rc = PGMPhysSimpleReadGCPtr(pVCpu, &Tss, GCPtrTss, RT_OFFSETOF(VBOXTSS, IntRedirBitmap));
1604 && Tss.offIoBitmap < sizeof(VBOXTSS) /* too small */
1605 && Tss.offIoBitmap > cbTss) /* beyond the end */ /** @todo not sure how the partial case is handled; probably not allowed. */
1619 cbMonitoredTss = Tss.offIoBitmap;
1620 pVM->selm.s.offGuestIoBitmap = Tss.offIoBitmap;
1622 uint32_t offRedirBitmap = Tss.offIoBitmap - sizeof(Tss.IntRedirBitmap);
1623 rc = PGMPhysSimpleReadGCPtr(pVCpu, &pVM->selm.s.Tss.IntRedirBitmap,
1624 GCPtrTss + offRedirBitmap, sizeof(Tss.IntRedirBitmap));
1628 Log2(("%.*Rhxd\n", sizeof(Tss.IntRedirBitmap), &pVM->selm.s.Tss.IntRedirBitmap));
1647 if ((ssr0 & ~1) != Tss.ss0 || espr0 != Tss.esp0)
1652 Tss.ss0, Tss.esp0, (ssr0 & ~1), espr0, GCPhys));
1653 AssertMsg(ssr0 != Tss.ss0,
1655 Tss.ss0, Tss.esp0, (ssr0 & ~1), espr0, GCPhys));
1657 Log(("offIoBitmap=%#x\n", Tss.offIoBitmap));
1660 AssertMsg(!(Tss.ss0 & 3), ("ring-1 leak into TSS.SS0? %04X:%08X\n", Tss.ss0, Tss.esp0));
1663 selmSetRing1Stack(pVM, Tss.ss0 | 1, Tss.esp0);
1670 if ( (pVM->selm.s.Tss.ss2 != ((Tss.ss1 & ~2) | 1))
1671 || pVM->selm.s.Tss.esp2 != Tss.esp1)
1672 Log(("SELMR3SyncTSS: Updating TSS ring 1 stack to %04X:%08X from %04X:%08X\n", Tss.ss1, Tss.esp1, (pVM->selm.s.Tss.ss2 & ~2) | 1, pVM->selm.s.Tss.esp2));
1673 selmSetRing2Stack(pVM, (Tss.ss1 & ~1) | 2, Tss.esp1);
1972 VBOXTSS Tss;
1974 int rc = PGMPhysSimpleReadGCPtr(pVCpu, &Tss, GCPtrTss, RT_OFFSETOF(VBOXTSS, IntRedirBitmap));
1982 && Tss.offIoBitmap < sizeof(VBOXTSS) /* too small */
1983 && Tss.offIoBitmap > cbTss)
1988 cbMonitoredTss = Tss.offIoBitmap;
1989 AssertMsgReturn(pVM->selm.s.offGuestIoBitmap == Tss.offIoBitmap,
1990 ("#x %#x\n", pVM->selm.s.offGuestIoBitmap, Tss.offIoBitmap),
1994 uint32_t offRedirBitmap = Tss.offIoBitmap - sizeof(Tss.IntRedirBitmap);
1995 rc = PGMPhysSimpleReadGCPtr(pVCpu, &Tss.IntRedirBitmap,
1996 GCPtrTss + offRedirBitmap, sizeof(Tss.IntRedirBitmap));
1998 AssertMsgReturn(!memcmp(&Tss.IntRedirBitmap[0], &pVM->selm.s.Tss.IntRedirBitmap[0], sizeof(Tss.IntRedirBitmap)),
2002 Tss.offIoBitmap, cbTss,
2003 &Tss.IntRedirBitmap[0],
2004 &pVM->selm.s.Tss.IntRedirBitmap[0]),
2016 if ( Tss.esp0 != pVM->selm.s.Tss.esp1
2017 || Tss.ss0 != (pVM->selm.s.Tss.ss1 & ~1))
2021 AssertMsgFailed(("TSS out of sync!! (%04X:%08X vs %04X:%08X (guest)) Tss=%RGv Phys=%RGp\n",
2022 (pVM->selm.s.Tss.ss1 & ~1), pVM->selm.s.Tss.esp1,
2023 Tss.ss1, Tss.esp1, GCPtrTss, GCPhys));
2031 AssertMsgReturn(pVM->selm.s.Tss.ss1 == 0 && pVM->selm.s.Tss.esp1 == 0, ("%04x:%08x\n", pVM->selm.s.Tss.ss1, pVM->selm.s.Tss.esp1), false);
2064 RTRCPTR RCPtrTSS = VM_RC_ADDR(pVM, &pVM->selm.s.Tss);