#!/usr/bin/perl

# softboot
# John Jacobsen, NPX Designs, Inc., jacobsen\@npxdesigns.com
# Started: Tue Mar  9 09:16:56 2004

package MY_PACKAGE;
use strict;

sub usage { return "Usage: $0 <card> <pair> <dom>\n"; }

my $arg = shift;
my $card; my $pair; my $dom;

if($arg =~ /^(\d)(\d)(\w)$/) {
    $card   = $1;
    $pair   = $2;
    $dom    = $3;
} else {
    $card = $arg; die usage unless defined $card;
    $pair = shift; die usage unless defined $pair;
    $dom  = shift; die usage unless defined $dom;
}

$dom =~ tr/[a-z]/[A-Z]/;
my $procfile = "/proc/driver/domhub/card$card/pair$pair/dom$dom/softboot";
die "DOM, card, or driver not found (no $procfile)!\n" unless -f $procfile;
$|++;
sub lasterr { return `cat /proc/driver/domhub/lasterr`; }
lasterr; # Clear it.
print "Softboot $procfile: ";
system "echo reset > $procfile";
my $lasterr = lasterr;
die "Softboot failed: $lasterr\n" unless $lasterr =~ /no error/;
print "Ok.\n";
__END__

