summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xsys/pci/locate.pl23
1 files changed, 18 insertions, 5 deletions
diff --git a/sys/pci/locate.pl b/sys/pci/locate.pl
index 1cb45ad..89688e1 100755
--- a/sys/pci/locate.pl
+++ b/sys/pci/locate.pl
@@ -1,8 +1,21 @@
-#!/usr/bin/perl
+#!/usr/bin/perl -w
# $FreeBSD$
-$errpos = hex($ARGV[0])/4;
-$ofs=0;
+use strict;
+
+if (!defined($ARGV[0])) {
+ print(
+"
+Perl script to convert NCR script address into label+offset.
+Useful to find the failed NCR instruction ...
+
+usage: $0 <address>
+");
+ exit(1);
+}
+
+my $errpos = hex($ARGV[0])/4;
+my $ofs=0;
open (INPUT, "cc -E ncr.c 2>/dev/null |");
@@ -14,9 +27,9 @@ while ($_ = <INPUT>)
while ($_ = <INPUT>)
{
last if /^\}\;/;
- ($label, $size) = /ncrcmd\s+(\S+)\s+\[([^]]+)/;
+ my ($label, $size) = /ncrcmd\s+(\S+)\s+\[([^]]+)/;
$size = eval($size);
- if ($label) {
+ if (defined($label) && $label) {
if ($errpos) {
if ($ofs + $size > $errpos) {
printf ("%4x: %s\n", $ofs * 4, $label);
OpenPOWER on IntegriCloud