#!/usr/bin/perl -w use strict; my @devices; $/ = "\n "; while (my $lines = ) { my %hash; if ($lines =~ m/Bus (\d+), device (\d+), function (\d+):/) { $hash{bus} = $1; $hash{device} = $2; $hash{function} = $3; } ## parse other lines ... push @devices,\%hash; } # use @devices # /proc/pci from # http://web.gnu.walfield.org/mail-archive/linux-kernel/1999-October/0315.html __END__ PCI devices found: Bus 0, device 0, function 0: Host bridge: Intel Unknown device (rev 3). Vendor id=8086. Device id=7190. Medium devsel. Master Capable. Latency=64. Prefetchable 32 bit memory at 0xe6000000 [0xe6000008]. Bus 0, device 1, function 0: PCI bridge: Intel Unknown device (rev 3). Vendor id=8086. Device id=7191. Medium devsel. Master Capable. Latency=64. Min Gnt=136. Bus 0, device 7, function 0: ISA bridge: Intel 82371AB PIIX4 ISA (rev 2). Medium devsel. Fast back-to-back capable. Master Capable. No bursts. Bus 0, device 7, function 1: IDE interface: Intel 82371AB PIIX4 IDE (rev 1). Medium devsel. Fast back-to-back capable. Master Capable. Latency=64. I/O at 0xf000 [0xf001]. Bus 0, device 7, function 2: USB Controller: Intel 82371AB PIIX4 USB (rev 1). Medium devsel. Fast back-to-back capable. Master Capable. Latency=64. I/O at 0xe000 [0xe001]. Bus 0, device 7, function 3: Bridge: Intel 82371AB PIIX4 ACPI (rev 2). Medium devsel. Fast back-to-back capable. Bus 0, device 9, function 0: Ethernet controller: Realtek 8029 (rev 0). Medium devsel. IRQ 12. I/O at 0xe400 [0xe401]. Bus 0, device 11, function 0: Non-VGA device: NCR 53c810 (rev 1). Medium devsel. IRQ 10. Master Capable. Latency=64. I/O at 0xe800 [0xe801]. Non-prefetchable 32 bit memory at 0xe7000000 [0xe7000000]. Bus 1, device 0, function 0: VGA compatible controller: Matrox Unknown device (rev 3). Vendor id=102b. Device id=525. Medium devsel. Fast back-to-back capable. IRQ 11. Master Capable. Latency=64. Min Gnt=16.Max Lat=32. Prefetchable 32 bit memory at 0xe4000000 [0xe4000008]. Non-prefetchable 32 bit memory at 0xe0000000 [0xe0000000]. Non-prefetchable 32 bit memory at 0xe1000000 [0xe1000000].