Lines Matching refs:idt
228 struct desc_struct *idt; in try_deliver_interrupt() local
256 idt = &cpu->arch.idt[FIRST_EXTERNAL_VECTOR+irq]; in try_deliver_interrupt()
258 if (idt_present(idt->a, idt->b)) { in try_deliver_interrupt()
288 guest_run_interrupt(cpu, idt->a, idt->b); in try_deliver_interrupt()
390 if (num >= ARRAY_SIZE(cpu->arch.idt)) in deliver_trap()
397 if (!idt_present(cpu->arch.idt[num].a, cpu->arch.idt[num].b)) in deliver_trap()
400 guest_run_interrupt(cpu, cpu->arch.idt[num].a, in deliver_trap()
401 cpu->arch.idt[num].b); in deliver_trap()
570 if (num >= ARRAY_SIZE(cpu->arch.idt)) in load_guest_idt_entry()
573 set_trap(cpu, &cpu->arch.idt[num], num, lo, hi); in load_guest_idt_entry()
581 static void default_idt_entry(struct desc_struct *idt, in default_idt_entry() argument
603 idt->a = (LGUEST_CS<<16) | (handler&0x0000FFFF); in default_idt_entry()
604 idt->b = (handler&0xFFFF0000) | flags; in default_idt_entry()
622 void copy_traps(const struct lg_cpu *cpu, struct desc_struct *idt, in copy_traps() argument
631 for (i = 0; i < ARRAY_SIZE(cpu->arch.idt); i++) { in copy_traps()
632 const struct desc_struct *gidt = &cpu->arch.idt[i]; in copy_traps()
649 idt[i] = *gidt; in copy_traps()
651 default_idt_entry(&idt[i], i, def[i], gidt); in copy_traps()