Lines Matching defs:sregs

203 dumpKvm(const struct kvm_sregs &sregs)
206 inform("\t" # kreg ": 0x%llx\n", sregs.kreg);
208 dumpKvm(# kreg, sregs.kreg);
210 dumpKvm(# kreg, sregs.kreg);
219 inform(" 0x%.8x", sregs.interrupt_bitmap[i / 64]);
382 struct kvm_sregs sregs)
416 if (seg.dpl != sregs.ss.dpl)
421 if (seg.dpl > sregs.ss.dpl)
435 if (sregs.cs.type == 3 && seg.dpl != 0)
439 if (!(sregs.cr0 & 1) && seg.dpl != 0)
603 struct kvm_sregs sregs;
604 getSpecialRegisters(sregs);
605 dumpKvm(sregs);
757 struct kvm_sregs sregs;
759 #define APPLY_SREG(kreg, mreg) sregs.kreg = tc->readMiscRegNoEffect(mreg)
760 #define APPLY_SEGMENT(kreg, idx) setKvmSegmentReg(tc, sregs.kreg, idx)
761 #define APPLY_DTABLE(kreg, idx) setKvmDTableReg(tc, sregs.kreg, idx)
772 memset(&sregs.interrupt_bitmap, 0, sizeof(sregs.interrupt_bitmap));
776 forceSegAccessed(sregs.cs);
777 forceSegAccessed(sregs.ss);
778 forceSegAccessed(sregs.ds);
779 forceSegAccessed(sregs.es);
780 forceSegAccessed(sregs.fs);
781 forceSegAccessed(sregs.gs);
785 if (sregs.tr.type == SEG_SYS_TYPE_TSS_AVAILABLE) {
787 sregs.tr.type);
788 sregs.tr.type = SEG_SYS_TYPE_TSS_BUSY;
795 if ((sregs.cs.type == SEG_CS_TYPE_ACCESSED ||
796 sregs.cs.type == SEG_CS_TYPE_READ_ACCESSED) &&
797 sregs.cs.dpl != sregs.ss.dpl) {
800 sregs.cs.dpl, sregs.ss.dpl, sregs.cs.dpl);
801 sregs.ss.dpl = sregs.cs.dpl;
813 checkSeg(# kreg, idx + MISCREG_SEG_SEL_BASE, sregs.kreg, sregs)
819 setSpecialRegisters(sregs);
941 struct kvm_sregs sregs;
944 getSpecialRegisters(sregs);
950 updateThreadContextRegs(regs, sregs);
951 updateThreadContextSRegs(sregs);
973 const struct kvm_sregs &sregs)
981 tc->pcState(PCState(regs.rip + sregs.cs.base));
1007 // make sure this is called after the sregs have been synced.
1020 // make sure this is called after the sregs have been synced.
1026 X86KvmCPU::updateThreadContextSRegs(const struct kvm_sregs &sregs)
1028 assert(getKvmRunState()->apic_base == sregs.apic_base);
1029 assert(getKvmRunState()->cr8 == sregs.cr8);
1031 #define APPLY_SREG(kreg, mreg) tc->setMiscRegNoEffect(mreg, sregs.kreg)
1032 #define APPLY_SEGMENT(kreg, idx) setContextSegment(tc, sregs.kreg, idx)
1033 #define APPLY_DTABLE(kreg, idx) setContextSegment(tc, sregs.kreg, idx)