diff --git a/sys/pci/locate.pl b/sys/pci/locate.pl new file mode 100755 index 00000000000..5fcb5d93b0c --- /dev/null +++ b/sys/pci/locate.pl @@ -0,0 +1,31 @@ +#!/usr/local/bin/perl + +$errpos = hex($ARGV[0])/4; +$ofs=0; + +open (INPUT, "cc -E ncr.c 2>/dev/null |"); + +while ($_ = ) +{ + last if /^struct script \{/; +} + +while ($_ = ) +{ + last if /^\}\;/; + ($label, $size) = /ncrcmd\s+(\S+)\s+\[([^]]+)/; + $size = eval($size); + if ($label) { + if ($errpos) { + if ($ofs + $size > $errpos) { + printf ("%4x: %s\n", $ofs * 4, $label); + printf ("%4x: %s + %d\n", $errpos * 4, $label, $errpos - $ofs); + last; + } + $ofs += $size; + } else { + printf ("%4x: %s\n", $ofs * 4, $label); + } + } +} +