Break GDT, TSS out of init.c, mmu.h.
[pintos-anon] / src / threads / intr-stubs.pl
index 45f4fa320de011addd823ec6c354b45d95530ec6..d9e0dd35508fee62e9d3f8b758525bf4855c82c6 100755 (executable)
@@ -1,9 +1,10 @@
 #! /usr/bin/perl
 
 print <<'EOF';
-#include "mmu.h"
+#include "gdt.h"
 
-       .globl intr_stubs
+       .data
+.globl intr_stubs
 intr_stubs:
 EOF
 
@@ -11,13 +12,19 @@ for $i (0...255) {
     $x = sprintf ("%02x", $i);
     print "\t.long intr${x}_stub\n";
 }
-print "\n";
+
+print <<'EOF';
+
+       .text
+EOF
 
 for $i (0...255) {
     $x = sprintf ("%02x", $i);
-    print "\t.globl intr${x}_stub\n";
+    print ".globl intr${x}_stub\n";
     print "intr${x}_stub:\n";
-    print "\tpushl \$0\n" if $i != 8 && $i != 10 && $i != 11 && $i != 13 && $i != 14 && $i != 17;
+    print "\tpushl \$0\n"
+       if ($i != 8 && $i != 10 && $i != 11
+           && $i != 13 && $i != 14 && $i != 17);
     print "\tpushl \$0x$x\n";
     print "\tjmp intr_entry\n";
 }
@@ -37,10 +44,12 @@ intr_entry:
 
        # Call handler.
        pushl %esp
-       .globl intr_handler
+.globl intr_handler
        call intr_handler
        addl $4, %esp
 
+.globl intr_exit
+intr_exit:
        # Restore caller's registers.
        popal
        popl %es