diff options
Diffstat (limited to 'hwdb')
-rw-r--r-- | hwdb/20-pci-classes.hwdb | 531 | ||||
-rw-r--r-- | hwdb/20-pci-vendor-product.hwdb | 3 | ||||
-rwxr-xr-x | hwdb/ids-update.pl | 252 |
3 files changed, 694 insertions, 92 deletions
diff --git a/hwdb/20-pci-classes.hwdb b/hwdb/20-pci-classes.hwdb new file mode 100644 index 0000000000..fc086a5b5c --- /dev/null +++ b/hwdb/20-pci-classes.hwdb @@ -0,0 +1,531 @@ +# This file is part of systemd. +# +# Data imported and updated from: http://pciids.sourceforge.net/v2.2/pci.ids + +pci:v*d*sv*sd*bc00* + ID_PCI_CLASS_FROM_DATABASE=Unclassified device + +pci:v*d*sv*sd*bc00sc00* + ID_PCI_SUBCLASS_FROM_DATABASE=Non-VGA unclassified device + +pci:v*d*sv*sd*bc00sc01* + ID_PCI_SUBCLASS_FROM_DATABASE=VGA compatible unclassified device + +pci:v*d*sv*sd*bc01* + ID_PCI_CLASS_FROM_DATABASE=Mass storage controller + +pci:v*d*sv*sd*bc01sc00* + ID_PCI_SUBCLASS_FROM_DATABASE=SCSI storage controller + +pci:v*d*sv*sd*bc01sc01* + ID_PCI_SUBCLASS_FROM_DATABASE=IDE interface + +pci:v*d*sv*sd*bc01sc02* + ID_PCI_SUBCLASS_FROM_DATABASE=Floppy disk controller + +pci:v*d*sv*sd*bc01sc03* + ID_PCI_SUBCLASS_FROM_DATABASE=IPI bus controller + +pci:v*d*sv*sd*bc01sc04* + ID_PCI_SUBCLASS_FROM_DATABASE=RAID bus controller + +pci:v*d*sv*sd*bc01sc05* + ID_PCI_SUBCLASS_FROM_DATABASE=ATA controller + +pci:v*d*sv*sd*bc01sc05i20* + ID_PCI_INTERFACE_FROM_DATABASE=ADMA single stepping + +pci:v*d*sv*sd*bc01sc05i30* + ID_PCI_INTERFACE_FROM_DATABASE=ADMA continuous operation + +pci:v*d*sv*sd*bc01sc06* + ID_PCI_SUBCLASS_FROM_DATABASE=SATA controller + +pci:v*d*sv*sd*bc01sc06i00* + ID_PCI_INTERFACE_FROM_DATABASE=Vendor specific + +pci:v*d*sv*sd*bc01sc06i01* + ID_PCI_INTERFACE_FROM_DATABASE=AHCI 1.0 + +pci:v*d*sv*sd*bc01sc07* + ID_PCI_SUBCLASS_FROM_DATABASE=Serial Attached SCSI controller + +pci:v*d*sv*sd*bc01sc08* + ID_PCI_SUBCLASS_FROM_DATABASE=Non-Volatile memory controller + +pci:v*d*sv*sd*bc01sc80* + ID_PCI_SUBCLASS_FROM_DATABASE=Mass storage controller + +pci:v*d*sv*sd*bc02* + ID_PCI_CLASS_FROM_DATABASE=Network controller + +pci:v*d*sv*sd*bc02sc00* + ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller + +pci:v*d*sv*sd*bc02sc01* + ID_PCI_SUBCLASS_FROM_DATABASE=Token ring network controller + +pci:v*d*sv*sd*bc02sc02* + ID_PCI_SUBCLASS_FROM_DATABASE=FDDI network controller + +pci:v*d*sv*sd*bc02sc03* + ID_PCI_SUBCLASS_FROM_DATABASE=ATM network controller + +pci:v*d*sv*sd*bc02sc04* + ID_PCI_SUBCLASS_FROM_DATABASE=ISDN controller + +pci:v*d*sv*sd*bc02sc05* + ID_PCI_SUBCLASS_FROM_DATABASE=WorldFip controller + +pci:v*d*sv*sd*bc02sc06* + ID_PCI_SUBCLASS_FROM_DATABASE=PICMG controller + +pci:v*d*sv*sd*bc02sc80* + ID_PCI_SUBCLASS_FROM_DATABASE=Network controller + +pci:v*d*sv*sd*bc03* + ID_PCI_CLASS_FROM_DATABASE=Display controller + +pci:v*d*sv*sd*bc03sc00* + ID_PCI_SUBCLASS_FROM_DATABASE=VGA compatible controller + +pci:v*d*sv*sd*bc03sc00i00* + ID_PCI_INTERFACE_FROM_DATABASE=VGA controller + +pci:v*d*sv*sd*bc03sc00i01* + ID_PCI_INTERFACE_FROM_DATABASE=8514 controller + +pci:v*d*sv*sd*bc03sc01* + ID_PCI_SUBCLASS_FROM_DATABASE=XGA compatible controller + +pci:v*d*sv*sd*bc03sc02* + ID_PCI_SUBCLASS_FROM_DATABASE=3D controller + +pci:v*d*sv*sd*bc03sc80* + ID_PCI_SUBCLASS_FROM_DATABASE=Display controller + +pci:v*d*sv*sd*bc04* + ID_PCI_CLASS_FROM_DATABASE=Multimedia controller + +pci:v*d*sv*sd*bc04sc00* + ID_PCI_SUBCLASS_FROM_DATABASE=Multimedia video controller + +pci:v*d*sv*sd*bc04sc01* + ID_PCI_SUBCLASS_FROM_DATABASE=Multimedia audio controller + +pci:v*d*sv*sd*bc04sc02* + ID_PCI_SUBCLASS_FROM_DATABASE=Computer telephony device + +pci:v*d*sv*sd*bc04sc03* + ID_PCI_SUBCLASS_FROM_DATABASE=Audio device + +pci:v*d*sv*sd*bc04sc80* + ID_PCI_SUBCLASS_FROM_DATABASE=Multimedia controller + +pci:v*d*sv*sd*bc05* + ID_PCI_CLASS_FROM_DATABASE=Memory controller + +pci:v*d*sv*sd*bc05sc00* + ID_PCI_SUBCLASS_FROM_DATABASE=RAM memory + +pci:v*d*sv*sd*bc05sc01* + ID_PCI_SUBCLASS_FROM_DATABASE=FLASH memory + +pci:v*d*sv*sd*bc05sc80* + ID_PCI_SUBCLASS_FROM_DATABASE=Memory controller + +pci:v*d*sv*sd*bc06* + ID_PCI_CLASS_FROM_DATABASE=Bridge + +pci:v*d*sv*sd*bc06sc00* + ID_PCI_SUBCLASS_FROM_DATABASE=Host bridge + +pci:v*d*sv*sd*bc06sc01* + ID_PCI_SUBCLASS_FROM_DATABASE=ISA bridge + +pci:v*d*sv*sd*bc06sc02* + ID_PCI_SUBCLASS_FROM_DATABASE=EISA bridge + +pci:v*d*sv*sd*bc06sc03* + ID_PCI_SUBCLASS_FROM_DATABASE=MicroChannel bridge + +pci:v*d*sv*sd*bc06sc04* + ID_PCI_SUBCLASS_FROM_DATABASE=PCI bridge + +pci:v*d*sv*sd*bc06sc04i00* + ID_PCI_INTERFACE_FROM_DATABASE=Normal decode + +pci:v*d*sv*sd*bc06sc04i01* + ID_PCI_INTERFACE_FROM_DATABASE=Subtractive decode + +pci:v*d*sv*sd*bc06sc05* + ID_PCI_SUBCLASS_FROM_DATABASE=PCMCIA bridge + +pci:v*d*sv*sd*bc06sc06* + ID_PCI_SUBCLASS_FROM_DATABASE=NuBus bridge + +pci:v*d*sv*sd*bc06sc07* + ID_PCI_SUBCLASS_FROM_DATABASE=CardBus bridge + +pci:v*d*sv*sd*bc06sc08* + ID_PCI_SUBCLASS_FROM_DATABASE=RACEway bridge + +pci:v*d*sv*sd*bc06sc08i00* + ID_PCI_INTERFACE_FROM_DATABASE=Transparent mode + +pci:v*d*sv*sd*bc06sc08i01* + ID_PCI_INTERFACE_FROM_DATABASE=Endpoint mode + +pci:v*d*sv*sd*bc06sc09* + ID_PCI_SUBCLASS_FROM_DATABASE=Semi-transparent PCI-to-PCI bridge + +pci:v*d*sv*sd*bc06sc09i40* + ID_PCI_INTERFACE_FROM_DATABASE=Primary bus towards host CPU + +pci:v*d*sv*sd*bc06sc09i80* + ID_PCI_INTERFACE_FROM_DATABASE=Secondary bus towards host CPU + +pci:v*d*sv*sd*bc06sc0A* + ID_PCI_SUBCLASS_FROM_DATABASE=InfiniBand to PCI host bridge + +pci:v*d*sv*sd*bc06sc80* + ID_PCI_SUBCLASS_FROM_DATABASE=Bridge + +pci:v*d*sv*sd*bc07* + ID_PCI_CLASS_FROM_DATABASE=Communication controller + +pci:v*d*sv*sd*bc07sc00* + ID_PCI_SUBCLASS_FROM_DATABASE=Serial controller + +pci:v*d*sv*sd*bc07sc00i00* + ID_PCI_INTERFACE_FROM_DATABASE=8250 + +pci:v*d*sv*sd*bc07sc00i01* + ID_PCI_INTERFACE_FROM_DATABASE=16450 + +pci:v*d*sv*sd*bc07sc00i02* + ID_PCI_INTERFACE_FROM_DATABASE=16550 + +pci:v*d*sv*sd*bc07sc00i03* + ID_PCI_INTERFACE_FROM_DATABASE=16650 + +pci:v*d*sv*sd*bc07sc00i04* + ID_PCI_INTERFACE_FROM_DATABASE=16750 + +pci:v*d*sv*sd*bc07sc00i05* + ID_PCI_INTERFACE_FROM_DATABASE=16850 + +pci:v*d*sv*sd*bc07sc00i06* + ID_PCI_INTERFACE_FROM_DATABASE=16950 + +pci:v*d*sv*sd*bc07sc01* + ID_PCI_SUBCLASS_FROM_DATABASE=Parallel controller + +pci:v*d*sv*sd*bc07sc01i00* + ID_PCI_INTERFACE_FROM_DATABASE=SPP + +pci:v*d*sv*sd*bc07sc01i01* + ID_PCI_INTERFACE_FROM_DATABASE=BiDir + +pci:v*d*sv*sd*bc07sc01i02* + ID_PCI_INTERFACE_FROM_DATABASE=ECP + +pci:v*d*sv*sd*bc07sc01i03* + ID_PCI_INTERFACE_FROM_DATABASE=IEEE1284 + +pci:v*d*sv*sd*bc07sc01iFE* + ID_PCI_INTERFACE_FROM_DATABASE=IEEE1284 Target + +pci:v*d*sv*sd*bc07sc02* + ID_PCI_SUBCLASS_FROM_DATABASE=Multiport serial controller + +pci:v*d*sv*sd*bc07sc03* + ID_PCI_SUBCLASS_FROM_DATABASE=Modem + +pci:v*d*sv*sd*bc07sc03i00* + ID_PCI_INTERFACE_FROM_DATABASE=Generic + +pci:v*d*sv*sd*bc07sc03i01* + ID_PCI_INTERFACE_FROM_DATABASE=Hayes/16450 + +pci:v*d*sv*sd*bc07sc03i02* + ID_PCI_INTERFACE_FROM_DATABASE=Hayes/16550 + +pci:v*d*sv*sd*bc07sc03i03* + ID_PCI_INTERFACE_FROM_DATABASE=Hayes/16650 + +pci:v*d*sv*sd*bc07sc03i04* + ID_PCI_INTERFACE_FROM_DATABASE=Hayes/16750 + +pci:v*d*sv*sd*bc07sc04* + ID_PCI_SUBCLASS_FROM_DATABASE=GPIB controller + +pci:v*d*sv*sd*bc07sc05* + ID_PCI_SUBCLASS_FROM_DATABASE=Smard Card controller + +pci:v*d*sv*sd*bc07sc80* + ID_PCI_SUBCLASS_FROM_DATABASE=Communication controller + +pci:v*d*sv*sd*bc08* + ID_PCI_CLASS_FROM_DATABASE=Generic system peripheral + +pci:v*d*sv*sd*bc08sc00* + ID_PCI_SUBCLASS_FROM_DATABASE=PIC + +pci:v*d*sv*sd*bc08sc00i00* + ID_PCI_INTERFACE_FROM_DATABASE=8259 + +pci:v*d*sv*sd*bc08sc00i01* + ID_PCI_INTERFACE_FROM_DATABASE=ISA PIC + +pci:v*d*sv*sd*bc08sc00i02* + ID_PCI_INTERFACE_FROM_DATABASE=EISA PIC + +pci:v*d*sv*sd*bc08sc00i10* + ID_PCI_INTERFACE_FROM_DATABASE=IO-APIC + +pci:v*d*sv*sd*bc08sc00i20* + ID_PCI_INTERFACE_FROM_DATABASE=IO(X)-APIC + +pci:v*d*sv*sd*bc08sc01* + ID_PCI_SUBCLASS_FROM_DATABASE=DMA controller + +pci:v*d*sv*sd*bc08sc01i00* + ID_PCI_INTERFACE_FROM_DATABASE=8237 + +pci:v*d*sv*sd*bc08sc01i01* + ID_PCI_INTERFACE_FROM_DATABASE=ISA DMA + +pci:v*d*sv*sd*bc08sc01i02* + ID_PCI_INTERFACE_FROM_DATABASE=EISA DMA + +pci:v*d*sv*sd*bc08sc02* + ID_PCI_SUBCLASS_FROM_DATABASE=Timer + +pci:v*d*sv*sd*bc08sc02i00* + ID_PCI_INTERFACE_FROM_DATABASE=8254 + +pci:v*d*sv*sd*bc08sc02i01* + ID_PCI_INTERFACE_FROM_DATABASE=ISA Timer + +pci:v*d*sv*sd*bc08sc02i02* + ID_PCI_INTERFACE_FROM_DATABASE=EISA Timers + +pci:v*d*sv*sd*bc08sc03* + ID_PCI_SUBCLASS_FROM_DATABASE=RTC + +pci:v*d*sv*sd*bc08sc03i00* + ID_PCI_INTERFACE_FROM_DATABASE=Generic + +pci:v*d*sv*sd*bc08sc03i01* + ID_PCI_INTERFACE_FROM_DATABASE=ISA RTC + +pci:v*d*sv*sd*bc08sc04* + ID_PCI_SUBCLASS_FROM_DATABASE=PCI Hot-plug controller + +pci:v*d*sv*sd*bc08sc05* + ID_PCI_SUBCLASS_FROM_DATABASE=SD Host controller + +pci:v*d*sv*sd*bc08sc06* + ID_PCI_SUBCLASS_FROM_DATABASE=IOMMU + +pci:v*d*sv*sd*bc08sc80* + ID_PCI_SUBCLASS_FROM_DATABASE=System peripheral + +pci:v*d*sv*sd*bc09* + ID_PCI_CLASS_FROM_DATABASE=Input device controller + +pci:v*d*sv*sd*bc09sc00* + ID_PCI_SUBCLASS_FROM_DATABASE=Keyboard controller + +pci:v*d*sv*sd*bc09sc01* + ID_PCI_SUBCLASS_FROM_DATABASE=Digitizer Pen + +pci:v*d*sv*sd*bc09sc02* + ID_PCI_SUBCLASS_FROM_DATABASE=Mouse controller + +pci:v*d*sv*sd*bc09sc03* + ID_PCI_SUBCLASS_FROM_DATABASE=Scanner controller + +pci:v*d*sv*sd*bc09sc04* + ID_PCI_SUBCLASS_FROM_DATABASE=Gameport controller + +pci:v*d*sv*sd*bc09sc04i00* + ID_PCI_INTERFACE_FROM_DATABASE=Generic + +pci:v*d*sv*sd*bc09sc04i10* + ID_PCI_INTERFACE_FROM_DATABASE=Extended + +pci:v*d*sv*sd*bc09sc80* + ID_PCI_SUBCLASS_FROM_DATABASE=Input device controller + +pci:v*d*sv*sd*bc0A* + ID_PCI_CLASS_FROM_DATABASE=Docking station + +pci:v*d*sv*sd*bc0Asc00* + ID_PCI_SUBCLASS_FROM_DATABASE=Generic Docking Station + +pci:v*d*sv*sd*bc0Asc80* + ID_PCI_SUBCLASS_FROM_DATABASE=Docking Station + +pci:v*d*sv*sd*bc0B* + ID_PCI_CLASS_FROM_DATABASE=Processor + +pci:v*d*sv*sd*bc0Bsc00* + ID_PCI_SUBCLASS_FROM_DATABASE=386 + +pci:v*d*sv*sd*bc0Bsc01* + ID_PCI_SUBCLASS_FROM_DATABASE=486 + +pci:v*d*sv*sd*bc0Bsc02* + ID_PCI_SUBCLASS_FROM_DATABASE=Pentium + +pci:v*d*sv*sd*bc0Bsc10* + ID_PCI_SUBCLASS_FROM_DATABASE=Alpha + +pci:v*d*sv*sd*bc0Bsc20* + ID_PCI_SUBCLASS_FROM_DATABASE=Power PC + +pci:v*d*sv*sd*bc0Bsc30* + ID_PCI_SUBCLASS_FROM_DATABASE=MIPS + +pci:v*d*sv*sd*bc0Bsc40* + ID_PCI_SUBCLASS_FROM_DATABASE=Co-processor + +pci:v*d*sv*sd*bc0C* + ID_PCI_CLASS_FROM_DATABASE=Serial bus controller + +pci:v*d*sv*sd*bc0Csc00* + ID_PCI_SUBCLASS_FROM_DATABASE=FireWire (IEEE 1394) + +pci:v*d*sv*sd*bc0Csc00i00* + ID_PCI_INTERFACE_FROM_DATABASE=Generic + +pci:v*d*sv*sd*bc0Csc00i10* + ID_PCI_INTERFACE_FROM_DATABASE=OHCI + +pci:v*d*sv*sd*bc0Csc01* + ID_PCI_SUBCLASS_FROM_DATABASE=ACCESS Bus + +pci:v*d*sv*sd*bc0Csc02* + ID_PCI_SUBCLASS_FROM_DATABASE=SSA + +pci:v*d*sv*sd*bc0Csc03* + ID_PCI_SUBCLASS_FROM_DATABASE=USB controller + +pci:v*d*sv*sd*bc0Csc03i00* + ID_PCI_INTERFACE_FROM_DATABASE=UHCI + +pci:v*d*sv*sd*bc0Csc03i10* + ID_PCI_INTERFACE_FROM_DATABASE=OHCI + +pci:v*d*sv*sd*bc0Csc03i20* + ID_PCI_INTERFACE_FROM_DATABASE=EHCI + +pci:v*d*sv*sd*bc0Csc03i30* + ID_PCI_INTERFACE_FROM_DATABASE=XHCI + +pci:v*d*sv*sd*bc0Csc03i80* + ID_PCI_INTERFACE_FROM_DATABASE=Unspecified + +pci:v*d*sv*sd*bc0Csc03iFE* + ID_PCI_INTERFACE_FROM_DATABASE=USB Device + +pci:v*d*sv*sd*bc0Csc04* + ID_PCI_SUBCLASS_FROM_DATABASE=Fibre Channel + +pci:v*d*sv*sd*bc0Csc05* + ID_PCI_SUBCLASS_FROM_DATABASE=SMBus + +pci:v*d*sv*sd*bc0Csc06* + ID_PCI_SUBCLASS_FROM_DATABASE=InfiniBand + +pci:v*d*sv*sd*bc0Csc07* + ID_PCI_SUBCLASS_FROM_DATABASE=IPMI SMIC interface + +pci:v*d*sv*sd*bc0Csc08* + ID_PCI_SUBCLASS_FROM_DATABASE=SERCOS interface + +pci:v*d*sv*sd*bc0Csc09* + ID_PCI_SUBCLASS_FROM_DATABASE=CANBUS + +pci:v*d*sv*sd*bc0D* + ID_PCI_CLASS_FROM_DATABASE=Wireless controller + +pci:v*d*sv*sd*bc0Dsc00* + ID_PCI_SUBCLASS_FROM_DATABASE=IRDA controller + +pci:v*d*sv*sd*bc0Dsc01* + ID_PCI_SUBCLASS_FROM_DATABASE=Consumer IR controller + +pci:v*d*sv*sd*bc0Dsc10* + ID_PCI_SUBCLASS_FROM_DATABASE=RF controller + +pci:v*d*sv*sd*bc0Dsc11* + ID_PCI_SUBCLASS_FROM_DATABASE=Bluetooth + +pci:v*d*sv*sd*bc0Dsc12* + ID_PCI_SUBCLASS_FROM_DATABASE=Broadband + +pci:v*d*sv*sd*bc0Dsc20* + ID_PCI_SUBCLASS_FROM_DATABASE=802.1a controller + +pci:v*d*sv*sd*bc0Dsc21* + ID_PCI_SUBCLASS_FROM_DATABASE=802.1b controller + +pci:v*d*sv*sd*bc0Dsc80* + ID_PCI_SUBCLASS_FROM_DATABASE=Wireless controller + +pci:v*d*sv*sd*bc0E* + ID_PCI_CLASS_FROM_DATABASE=Intelligent controller + +pci:v*d*sv*sd*bc0Esc00* + ID_PCI_SUBCLASS_FROM_DATABASE=I2O + +pci:v*d*sv*sd*bc0F* + ID_PCI_CLASS_FROM_DATABASE=Satellite communications controller + +pci:v*d*sv*sd*bc0Fsc01* + ID_PCI_SUBCLASS_FROM_DATABASE=Satellite TV controller + +pci:v*d*sv*sd*bc0Fsc02* + ID_PCI_SUBCLASS_FROM_DATABASE=Satellite audio communication controller + +pci:v*d*sv*sd*bc0Fsc03* + ID_PCI_SUBCLASS_FROM_DATABASE=Satellite voice communication controller + +pci:v*d*sv*sd*bc0Fsc04* + ID_PCI_SUBCLASS_FROM_DATABASE=Satellite data communication controller + +pci:v*d*sv*sd*bc10* + ID_PCI_CLASS_FROM_DATABASE=Encryption controller + +pci:v*d*sv*sd*bc10sc00* + ID_PCI_SUBCLASS_FROM_DATABASE=Network and computing encryption device + +pci:v*d*sv*sd*bc10sc10* + ID_PCI_SUBCLASS_FROM_DATABASE=Entertainment encryption device + +pci:v*d*sv*sd*bc10sc80* + ID_PCI_SUBCLASS_FROM_DATABASE=Encryption controller + +pci:v*d*sv*sd*bc11* + ID_PCI_CLASS_FROM_DATABASE=Signal processing controller + +pci:v*d*sv*sd*bc11sc00* + ID_PCI_SUBCLASS_FROM_DATABASE=DPIO module + +pci:v*d*sv*sd*bc11sc01* + ID_PCI_SUBCLASS_FROM_DATABASE=Performance counters + +pci:v*d*sv*sd*bc11sc10* + ID_PCI_SUBCLASS_FROM_DATABASE=Communication synchronizer + +pci:v*d*sv*sd*bc11sc20* + ID_PCI_SUBCLASS_FROM_DATABASE=Signal processing management + +pci:v*d*sv*sd*bc11sc80* + ID_PCI_SUBCLASS_FROM_DATABASE=Signal processing controller + +pci:v*d*sv*sd*bcFF* + ID_PCI_CLASS_FROM_DATABASE=Unassigned class diff --git a/hwdb/20-pci-vendor-product.hwdb b/hwdb/20-pci-vendor-product.hwdb index 3d6f305922..19c178565b 100644 --- a/hwdb/20-pci-vendor-product.hwdb +++ b/hwdb/20-pci-vendor-product.hwdb @@ -48248,6 +48248,9 @@ pci:v00008086d00000C7E* pci:v00008086d00000C7F* ID_PRODUCT_FROM_DATABASE=Centerton Internal Fabric +pci:v00008086d00000D0C* + ID_PRODUCT_FROM_DATABASE=Crystal Well HD Audio Controller + pci:v00008086d00000E00* ID_PRODUCT_FROM_DATABASE=Ivytown DMI2 diff --git a/hwdb/ids-update.pl b/hwdb/ids-update.pl index b23224a91c..d51f2208f7 100755 --- a/hwdb/ids-update.pl +++ b/hwdb/ids-update.pl @@ -3,98 +3,166 @@ use strict; use warnings; -my $vendor; - -open(IN, "<", "usb.ids"); -open(OUT, ">", "20-usb-vendor-product.hwdb"); -print(OUT "# This file is part of systemd.\n" . - "#\n" . - "# Data imported and updated from: http://www.linux-usb.org/usb.ids\n"); - -while (my $line = <IN>) { - $line =~ s/\s+$//; - $line =~ m/^([0-9a-f]{4})\s*(.*)$/; - if (defined $1) { - $vendor = uc $1; - my $text = $2; - print(OUT "\n"); - print(OUT "usb:v" . $vendor . "*\n"); - print(OUT " ID_VENDOR_FROM_DATABASE=" . $text . "\n"); - next; - } - - $line =~ m/^\t([0-9a-f]{4})\s*(.*)$/; - if (defined $1) { - my $product = uc $1; - my $text = $2; - print(OUT "\n"); - print(OUT "usb:v" . $vendor . "p" . $product . "*\n"); - print(OUT " ID_PRODUCT_FROM_DATABASE=" . $text . "\n"); - } +sub usb_vendor { + my $vendor; + + open(IN, "<", "usb.ids"); + open(OUT, ">", "20-usb-vendor-product.hwdb"); + print(OUT "# This file is part of systemd.\n" . + "#\n" . + "# Data imported and updated from: http://www.linux-usb.org/usb.ids\n"); + + while (my $line = <IN>) { + $line =~ s/\s+$//; + $line =~ m/^([0-9a-f]{4})\s*(.*)$/; + if (defined $1) { + $vendor = uc $1; + my $text = $2; + print(OUT "\n"); + print(OUT "usb:v" . $vendor . "*\n"); + print(OUT " ID_VENDOR_FROM_DATABASE=" . $text . "\n"); + next; + } + + $line =~ m/^\t([0-9a-f]{4})\s*(.*)$/; + if (defined $1) { + my $product = uc $1; + my $text = $2; + print(OUT "\n"); + print(OUT "usb:v" . $vendor . "p" . $product . "*\n"); + print(OUT " ID_PRODUCT_FROM_DATABASE=" . $text . "\n"); + } + } + + close(INP); + close(OUTP); +} + +sub pci_vendor { + my $vendor; + my $device; + + open(IN, "<", "usb.ids"); + open(IN, "<", "pci.ids"); + open(OUT, ">", "20-pci-vendor-product.hwdb"); + print(OUT "# This file is part of systemd.\n" . + "#\n" . + "# Data imported and updated from: http://pciids.sourceforge.net/v2.2/pci.ids\n"); + + while (my $line = <IN>) { + $line =~ s/\s+$//; + $line =~ m/^([0-9a-f]{4})\s*(.*)$/; + + if (defined $1) { + $vendor = uc $1; + my $text = $2; + print(OUT "\n"); + print(OUT "pci:v0000" . $vendor . "*\n"); + print(OUT " ID_VENDOR_FROM_DATABASE=" . $text . "\n"); + next; + } + + $line =~ m/^\t([0-9a-f]{4})\s*(.*)$/; + if (defined $1) { + $device = uc $1; + my $text = $2; + print(OUT "\n"); + print(OUT "pci:v0000" . $vendor . "d0000" . $device . "*\n"); + print(OUT " ID_PRODUCT_FROM_DATABASE=" . $text . "\n"); + next; + } + + $line =~ m/^\t\t([0-9a-f]{4})\s*([0-9a-f]{4})\s*(.*)$/; + if (defined $1) { + my $sub_vendor = uc $1; + my $sub_device = uc $2; + my $text = $3; + print(OUT "\n"); + print(OUT "pci:v0000" . $vendor . "d0000" . $device . "sv0000" . $sub_vendor . "sd0000" . $sub_device . "*\n"); + print(OUT " ID_PRODUCT_FROM_DATABASE=" . $text . "\n"); + } + } + + close(INP); + close(OUTP); } -close(INP); -close(OUTP); - - -my $device; - -open(IN, "<", "pci.ids"); -open(OUT, ">", "20-pci-vendor-product.hwdb"); -print(OUT "# This file is part of systemd.\n" . - "#\n" . - "# Data imported and updated from: http://pciids.sourceforge.net/v2.2/pci.ids\n"); - -while (my $line = <IN>) { - $line =~ s/\s+$//; - $line =~ m/^([0-9a-f]{4})\s*(.*)$/; - if (defined $1) { - $vendor = uc $1; - my $text = $2; - print(OUT "\n"); - print(OUT "pci:v0000" . $vendor . "*\n"); - print(OUT " ID_VENDOR_FROM_DATABASE=" . $text . "\n"); - next; - } - - $line =~ m/^\t([0-9a-f]{4})\s*(.*)$/; - if (defined $1) { - $device = uc $1; - my $text = $2; - print(OUT "\n"); - print(OUT "pci:v0000" . $vendor . "d0000" . $device . "*\n"); - print(OUT " ID_PRODUCT_FROM_DATABASE=" . $text . "\n"); - next; - } - - $line =~ m/^\t\t([0-9a-f]{4})\s*([0-9a-f]{4})\s*(.*)$/; - if (defined $1) { - my $sub_vendor = uc $1; - my $sub_device = uc $2; - my $text = $3; - print(OUT "\n"); - print(OUT "pci:v0000" . $vendor . "d0000" . $device . "sv0000" . $sub_vendor . "sd0000" . $sub_device . "*\n"); - print(OUT " ID_PRODUCT_FROM_DATABASE=" . $text . "\n"); - } + +sub pci_classes { + my $class; + my $subclass; + my $interface; + + open(IN, "<", "pci.ids"); + open(OUT, ">", "20-pci-classes.hwdb"); + print(OUT "# This file is part of systemd.\n" . + "#\n" . + "# Data imported and updated from: http://pciids.sourceforge.net/v2.2/pci.ids\n"); + + while (my $line = <IN>) { + $line =~ s/\s+$//; + + $line =~ m/^C\ ([0-9a-f]{2})\s*(.*)$/; + if (defined $1) { + $class = uc $1; + my $text = $2; + print(OUT "\n"); + print(OUT "pci:v*d*sv*sd*bc" . $class . "*\n"); + print(OUT " ID_PCI_CLASS_FROM_DATABASE=" . $text . "\n"); + next; + } + + if (not defined $class) { + next; + } + + $line =~ m/^\t([0-9a-f]{2})\s*(.*)$/; + if (defined $1) { + $subclass = uc $1; + my $text = $2; + print(OUT "\n"); + print(OUT "pci:v*d*sv*sd*bc" . $class . "sc" . $subclass . "*\n"); + print(OUT " ID_PCI_SUBCLASS_FROM_DATABASE=" . $text . "\n"); + next; + } + + $line =~ m/^\t\t([0-9a-f]{2})\s*(.*)$/; + if (defined $1) { + $interface = uc $1; + my $text = $2; + print(OUT "\n"); + print(OUT "pci:v*d*sv*sd*bc" . $class . "sc" . $subclass . "i" . $interface . "*\n"); + print(OUT " ID_PCI_INTERFACE_FROM_DATABASE=" . $text . "\n"); + } + } + + close(INP); + close(OUTP); } -close(INP); -close(OUTP); - -open(IN, "<", "oui.txt"); -open(OUT, ">", "20-OUI.hwdb"); -print(OUT "# This file is part of systemd.\n" . - "#\n" . - "# Data imported and updated from: http://standards.ieee.org/develop/regauth/oui/oui.txt\n"); - -while (my $line = <IN>) { - $line =~ s/\s+$//; - $line =~ m/^([0-9A-F]{6})\s*\(base 16\)\s*(.*)$/; - if (defined $1) { - my $vendor = uc $1; - my $text = $2; - print(OUT "\n"); - print(OUT "OUI:" . $vendor . "\n"); - print(OUT " ID_OUI_FROM_DATABASE=" . $text . "\n"); - } + +sub oui { + open(IN, "<", "oui.txt"); + open(OUT, ">", "20-OUI.hwdb"); + print(OUT "# This file is part of systemd.\n" . + "#\n" . + "# Data imported and updated from: http://standards.ieee.org/develop/regauth/oui/oui.txt\n"); + + while (my $line = <IN>) { + $line =~ s/\s+$//; + $line =~ m/^([0-9A-F]{6})\s*\(base 16\)\s*(.*)$/; + if (defined $1) { + my $vendor = uc $1; + my $text = $2; + print(OUT "\n"); + print(OUT "OUI:" . $vendor . "\n"); + print(OUT " ID_OUI_FROM_DATABASE=" . $text . "\n"); + } + } + + close(INP); + close(OUTP); } -close(INP); -close(OUTP); + +usb_vendor(); +pci_vendor(); +pci_classes(); +oui(); |