#!/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;
use Getopt::Long;

my $reset;
GetOptions("r" => \$reset);

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/comstat";
die "DOM, card, or driver not found (no $procfile)!\n" unless -f $procfile;
$|++;
sub lasterr { return `cat /proc/driver/domhub/lasterr`; }
lasterr; # Clear it.
if($reset) {
    print "Resetting $procfile: ";
    system "echo reset > $procfile";
    my $lasterr = lasterr;
    die "Comstat reset failed: $lasterr\n" unless $lasterr =~ /no error/;
    print "Ok.\n";
} else {
    print `cat $procfile`;
}

__END__

