xv6

port of xv6 to x86-64
git clone http://frotz.net/git/xv6.git
Log | Files | Refs | README | LICENSE

vectors64.pl (710B)


      1 #!/usr/bin/perl -w
      2 
      3 # Generate vectors.S, the trap/interrupt entry points.
      4 # There has to be one entry point per interrupt number
      5 # since otherwise there's no way for trap() to discover
      6 # the interrupt number.
      7 
      8 print "# generated by vectors.pl - do not edit\n";
      9 print "# handlers\n";
     10 print ".globl alltraps\n";
     11 for(my $i = 0; $i < 256; $i++){
     12     print ".globl vector$i\n";
     13     print "vector$i:\n";
     14     if(!($i == 8 || ($i >= 10 && $i <= 14) || $i == 17)){
     15         print "  push \$0\n";
     16     }
     17     print "  push \$$i\n";
     18     print "  jmp alltraps\n";
     19 }
     20 
     21 print "\n# vector table\n";
     22 print ".data\n";
     23 print ".globl vectors\n";
     24 print "vectors:\n";
     25 for(my $i = 0; $i < 256; $i++){
     26     print "  .quad vector$i\n";
     27 }