#!/usr/local/bin/perl # # lsdev.pl # # Created by Sander van Malssen # # Date: 1996-01-22 19:06:22 # Last Change: 1998-05-31 15:26:58 # # $Id: lsdev.pl,v 1.5 1999/05/15 22:16:03 svm Exp $ # # MAIN ####################################################################### open (IRQ, ") { next if /^[ \t]*[A-Z]/; chop; if (/PIC/) { $n = (@line = split()); } else { $n = (@line = split(' [ +] ')); } $name = $line[$n-1]; $device{$name} = $name; @tmp = split(':', $line[0]); $tmp0 = int($tmp[0]); $irq{$name} = "$irq{$name} $tmp0"; } close (IRQ); open (DMA, ") { chop; @line = split(': '); @tmp = split (/[ \(]/, $line[1]); $name = $tmp[0]; $device{$name} = $name; $dma{$name} = "$dma{$name}$line[0]"; } close (DMA); open (IOPORTS, ") { chop; @line = split(' : '); @tmp = split (/[ \(]/, $line[1]); $name = $tmp[0]; $device{$name} = $name; $port{$name} = "$port{$name} $line[0]"; } close (IOPORTS); printf ("%-16s %4s%6s %s\n------------------------------------------------\n", "Device", "DMA", "IRQ", " I/O Ports"); foreach $name (sort { uc($a) cmp uc($b) } keys %device) { printf ("%-16s %4s%6s %s\n", $name, $dma{$name}, $irq{$name}, $port{$name}); } # The End #################################################################### # Local variables: # rm-trailing-spaces: t