Actually initialize IDT in intr_init (!).
[pintos-anon] / src / threads / interrupt.c
index 8173ec11dcc44767c7cd5d02158651e48433eab4..eb10cd603669cabfa417fd48d9dd87f227945a17 100644 (file)
@@ -91,6 +91,10 @@ intr_init (void)
   /* Initialize interrupt controller. */
   pic_init ();
 
+  /* Initialize IDT. */
+  for (i = 0; i < INTR_CNT; i++)
+    idt[i] = make_trap_gate (intr_stubs[i], 0);
+
   /* Load IDT register. */
   idtr_operand = make_idtr_operand (sizeof idt - 1, idt);
   asm volatile ("lidt %0" :: "m" (idtr_operand));